显示dir下所有包含str1字符串文件的路径
grep -rl "str1" dir
把dir路径下面,还有子文件夹里面的所有包含‘str1’的文件里的‘str2’替换为‘str3’
grep -rl "str1" dir | xargs sed -i 's/str2/str3/g'
Mac用户需要注意, OS X上的sed和类似ubuntu这种Linux上的sed是不同的, 要求在sed -i后面跟一个字符串, 用来备份. 如果留空就不备份, 所以可以写成下面这样
grep -rl "str1" dir | xargs sed -i "" 's/str2/str3/g'