很容易忘,记录下:
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的处理;