什么是 sed?
sed(stream editor)是一个非交互式的文本处理工具,常用于在 Shell 脚本中自动编辑文件或处理文本流。它逐行读取输入,执行指定的编辑命令,并将结果输出到标准输出。
基本语法
sed [选项] '命令' 文件
例如:
sed 's/foo/bar/g' example.txt
上述命令会将 example.txt 中所有 foo 替换为 bar,但不会修改原文件(仅输出结果)。
常用命令示例
- 替换文本:
sed 's/旧字符串/新字符串/g' file - 删除行:
sed '2d' file(删除第2行) - 打印特定行:
sed -n '3p' file(只打印第3行) - 就地编辑文件:
sed -i 's/foo/bar/g' file
高级用法
结合正则表达式、多命令脚本(使用 -e 或 -f)、地址范围等,sed 可以完成复杂的文本处理任务。例如:
sed -e '1,5s/error/warning/g' -e '/^#/d' log.txt
该命令将前5行中的 error 替换为 warning,并删除所有以 # 开头的注释行。