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

上一篇 / 下一篇  2012-06-07 21:56:57 / 个人分类:linux与shell编程

  程序开发中,可能你会经常遇到批量替换文件内容的情况,如果你使用的是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

TAG:

 

评分:0

我来说两句

Open Toolbar