批量替换多个文件中的字符

linux下shell中:

sed -i  "s/oldstring/newstring/g" tmp.txt
sed -i  "s/oldstring/newstring/g" `grep "oldstring" -rl ./`
grep "oldstring"  -rl ./ |xargs sed -i "s/oldstring/newstring/g"

mac下shell略有不同,需要多加个空字符串""

sed -i  "" "s/oldstring/newstring/g" tmp.txt
sed -i  "" "s/oldstring/newstring/g" `grep "oldstring" -rl ./`
grep "oldstring"  -rl ./ |xargs sed -i "" "s/oldstring/newstring/g"

sed中参数s表示替换,g表示全部,如果不加g则会之替换一行中的第一个oldstring。

查看man手册,显示添加空字符串则不会保存备份,在崩溃和磁盘空间用完的情况下会有风险,这……大概是中彩票的几率吧,而且不加的话也执行不成功哇

你可能感兴趣的:(批量替换多个文件中的字符)