linux下批量替换文件内容的三种办法

时间:2022-11-19 09:57:39

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