sed -i 命令实现全局替换需加 g 选项,路径等特殊字符需换分隔符(如 #、|),忽略大小写加 I,安全起见应加 .bak 备份原文件。

用 sed -i 命令最直接,一行搞定,但得注意几个关键点才能真正替换“所有”匹配项。
确保全局替换(加 g)
不加 g 选项,sed 默认只替换每行第一个匹配项。要改掉文件里每一个出现的地方,必须写成:
sed -i 's/旧字符串/新字符串/g' 文件名
比如把 config.txt 中所有 localhost 换成 127.0.0.1:
sed -i 's/localhost/127.0.0.1/g' config.txt
处理特殊字符(换分隔符)
如果要替换的内容含 /(比如路径),直接用 / 作分隔符会报错。换成 # 或 | 就行:
sed -i 's#/old/path#/new/path#g' file.confsed -i 's|http://|https://|g' urls.txt
忽略大小写(加 I)
想把 Hello、HELLO、hello 全部替换成 Hi,加个大写 I:
sed -i 's/hello/hi/gI' readme.md
安全操作:先备份再替换
误操作可能丢数据。加上 .bak 后缀,原文件自动存为 文件名.bak:
sed -i.bak 's/foo/bar/g' script.sh- 确认没问题后,可删备份:
rm *.bak


















