因为某种原因项目中的某个方法丢失,而很多文件引用了该方法,需要将其全部替换为一个新的方法,引用的次数很多,手动改太麻烦.所以需要一次性替换.
例如要将目录 dir 下面所有文件中的 old 都修改成 new:
sed -i "s/old/new/g" `grep 'old' -rl dir`
1、查找目录下包含某个字符串的文件
例:查找 dir 目录下所有包含 str 的文件。
grep -lr 'str' dir
2、vim替换单个文件中所有字符串方法
例:替换当前文件中所有 old 为 new
:%s/old/new/g
3、替换目录下所有文件中到某个字符串——sed结合grep
例:要将目录 dir 下面所有文件中的 old 都修改成new,这样做:
sed -i "s/old/new/g" `grep 'old' -rl dir`
4、批量替换多个文件中的字符串的简单方法。
用sed命令可以批量替换多个文件中的字符串。
sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
例如:我要把mahuinan替换为huinanma,
执行命令:sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www'
这是目前linux最简单的批量替换字符串命令了!
具体格式如下:
sed -i "s/oldString/newString/g" `grep oldString -rl /path`
实例代码:sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl /usr/aa`
sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl ./`
这里要注意,相关要进行转义:
实例:
sed -i "s// /g"
`grep '' -rl test/`