http://www.51testing.com/html/93/316693-815340.html
程序开发中,可能你会经常遇到批量替换文件内容的情况,如果你使用的是linux,那么恭喜你,你可以使用一下三种办法进行查找替换。
方法一:
find -name 'file.log' | xargs perl -pi -e 's|string1|string2|g'
这里使用了perl语言,使用-e加上一段代码,从而批量地将当前目录及所有子目录下的file.log文件中的string1替换成了string2
string支持正则表达式
方法二:
sed -i "s/string1/string2/g" 'grep string1 -rl /path'
这里使用了sed命令,将/path目录及其子目录下的所有文件中的string1替换成了string2
这个命令,可能对返回多个文件不太支持,不太推荐!
方法三:
grep -i "string1" -r /path | awk -F : '{print $1}' | sort | uniq | xargs sed -i 's/string1/string2/g'
这里使用了
shell命令,先查找出文件,再用awk分割(以:切分),再行替换!
注意:
grep可以使用正则,也可以使用\转义一些特殊字符,比如“等
sed -i 's/\"localhost\"/\"10.2.2.2\"/g' /home/my.conf