很容易忘,记录下:

find -name "*.xml"| grep "rCN" | xargs grep  测试字符1  -l | xargs sed -i "s/测试字符1/测试字符2/g"

find 就不说了;

第一个grep,不需要xargs,为何?因为这个grep查找的不是文件内容,而是路径本身,检查find的取得的文件路径是否包括"rCN";

第二个grep,需要xargs,为何?因为这个grep要搜索的是文件内容,而非文件路径,查找文件内容存在"测试字符1"这个字符串,

然后,-l 参数为示只输出文件路径;

最后用sed来替换此文件中的“测试字符1”为"测试字符2"

sed的-i参数:表示修改文件内容,并非输出到终端。

完成。

温馨提示:

最好先执行一下find -name "*.xml"| grep "rCN" | xargs grep  测试字符1,看看结果是否为想要的结果,然后再加上sed的处理;
---------------------
作者:emmouse
来源:CSDN
原文:https://blog.csdn.net/EmMouse/article/details/53672318
版权声明:本文为博主原创文章,转载请附上博文链接!

发表评论

邮箱地址不会被公开。 必填项已用*标注