什么是 sed?
sed(Stream Editor)是 Linux/Unix 系统中用于对输入流(文件或管道)进行基本文本转换的非交互式编辑器。它常用于脚本中自动化文本处理任务。
常用 sed 参数
-e script:添加要执行的脚本命令,可多次使用。-f script-file:从指定文件中读取 sed 脚本。-n:静默模式,只输出经过p命令打印的行。-i:直接修改原文件(慎用!建议先备份)。-r或-E:启用扩展正则表达式(不同系统可能不同)。
基本语法示例
替换文本
sed 's/old/new/g' file.txt
将 file.txt 中每行第一个 old 替换为 new;加上 g 表示全局替换。
删除空行
sed '/^$/d' file.txt
原地修改文件
sed -i 's/foo/bar/g' file.txt
注意事项
使用 -i 参数会直接覆盖原文件,请务必在重要文件上操作前做好备份。不同操作系统(如 macOS 与 Linux)对 sed 的实现略有差异,尤其在正则表达式支持方面。