centos中查找并替换某个目录下所有文件中的某个字符串

作者:袖梨 2022-06-30


因为某种原因项目中的某个方法丢失,而很多文件引用了该方法,需要将其全部替换为一个新的方法,引用的次数很多,手动改太麻烦.所以需要一次性替换.

例如要将目录 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/`
 

相关文章

精彩推荐