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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容