什么是 sed?
sed(Stream Editor)是 Linux/Unix 系统中用于对输入流(文件或管道)进行基本文本转换的强大工具。它支持正则表达式,常用于自动化脚本中的文本替换、删除、插入等操作。
基本语法
sed [选项] '命令' 文件
常见选项:
-e:允许多个命令-i:直接修改文件内容(慎用!)-n:抑制默认输出,配合p打印匹配行
常用命令示例
1. 替换文本
sed 's/old/new/g' file.txt
将每行中所有 old 替换为 new。
2. 删除空行
sed '/^$/d' file.txt
3. 打印特定行
sed -n '5p' file.txt # 打印第5行
4. 在匹配行后插入内容
sed '/pattern/a\新内容' file.txt
高级技巧
结合正则表达式、多命令脚本和地址范围,sed 可以完成非常复杂的文本处理任务。例如:
sed -e '1,5d' -e 's/foo/bar/g' input.txt
先删除前5行,再全局替换 foo 为 bar。