Shell命令替换文件中固定字符串

一,替换当前某个目录下所有文件中的:www.sina.com.cn为sina.com.cn
这道题至少有4个知识点。

1,你需要知道替换使用sed
2,你需要知道如何遍历当前目录下的所有文件
3,你需要如何对每个找到的文件应用sed
4,你需要知道sed默认替换的时候不会保存到原文件。
答案:
替换所有需要使用sed的g参数
遍历当前目录下所有文件的方法: find / -type f
find联合sed的使用方法: find . -type f -exec sed ...
sed替换之后,把更新写入新文件的方法:-i选项。

所以上面问题的答案:

 find . -type f -exec sed -i 's/sina.com.cn/www.sina.com.cn/g' {} \;

更方便的一个写法

 find . -type f | xargs sed -i 's/sina.com.cn/www.sina.com.cn/g'

再加一个带转义符的:

$ find ./ -name "*.vcxproj" -exec sed -i "s/\$(ROOT)\/include\/ex;//g" {} \;

转自:https://blog.csdn.net/worldwindjp/article/details/19157375 

猜你喜欢

转载自blog.csdn.net/u011086209/article/details/92805220