什么是 sed -i -e?
sed(Stream Editor)是 Linux/Unix 系统中强大的流编辑器,常用于自动化文本处理。
- -i:直接修改原文件(in-place edit)。
- -e:允许指定多个编辑命令(expression)。
基本语法
sed -i -e 's/旧内容/新内容/g' 文件名
若需执行多个操作:
sed -i -e 's/foo/bar/g' -e 's/hello/world/g' file.txt
实用示例
1. 替换所有匹配项
sed -i -e 's/错误/正确/g' config.conf
2. 多命令组合:删除空行并替换关键词
sed -i -e '/^$/d' -e 's/DEBUG/INFO/g' app.log
3. 使用正则表达式
sed -i -e 's/[0-9]\+/NUM/g' data.txt
注意事项
- 使用
-i会直接覆盖原文件,建议先备份或使用-i.bak创建备份。 - 在 macOS 上,
-i必须带扩展名(如-i ''表示无备份)。 - 特殊字符(如
/)需转义,或改用其他分隔符(如|或#)。