sed批量替换多个文件的字符串

时间:2021-08-26 09:02:56
1、使用场景:

在进行编码或是代码移植时经常遇到,要批量替换特定字符串,于是找到了如下方法。这一方法在替换ip地址时也常常用到。

2、命令使用:
        
sed -i 's/old_string/new_string/g'  `grep old_string -rl ./`                           //一般的替换用这条足以实现
sed -i 's/old_string/new_string/g'  `grep old_string -rl ./ | grep -vE "tags|svn"`     //特殊要求的替换:此命令中要求过滤掉含有tags和svn的文件

3、说明:  将当前目录下,文本中含有的old_string的串替换为new_string.

1) grep old_string -rl ./ 检索出当前目下及子目录下的目标文件(含有old_string字符串的文件)

2)grep -vE "tags|svn" 过滤掉不合格的文件(含有tags或者svn字符的文件)。因为代码库里面经常包含有索引文件,这些索引文件受控于svn,不应认为改动。所以最好过滤掉

3) sed  -i          -i 表示 inplace edit, 就地修改文件,请注意批量替换前请先备份。