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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值