Alex的博客

本博客的文章均为原创,是本人从事行业多年来所遇见一些小问题的解决心得,希望可以帮助到大家!



linux 批量替换多个文本中的内容

最简单的

格式:

sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`

例子:

我要把mahuinan替换 为huinanma,执行命令: 
sed -i "s/mahuinan/huinanma/g"  `grep "mahuinan" -rl /www`

注意:

如果替换的内容里面有" 和/ 需要用\进行转义;

另外如果替换字符串比较多有空格或者其他符号的时候需要用""括起来;


如果提示参数过长的话可以用下面的命令进行查找替换


find 路径 -type f -path "*"  -print0 |xargs -0 sed -i 's:查找的内容:替换的内容:g'


备注:如果字符串中有:需要用\进行转义

解释:  -print0 打印空格  -0关闭 xargs 的特殊字符转义   否在路径或文件名中带有特殊字符的将无法被操作到


如果不用-print0的话会把所有的文件名当成一个文件名传递过去

浏览685  评论0  Alex于 2016-2-15 11:19
发言