在进行编码或是代码移植时经常遇到,要批量替换特定字符串,于是找到了如下方法。这一方法在替换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, 就地修改文件,请注意批量替换前请先备份。