首页 > shell > 用shell批量替换多个文件中字符串

用shell批量替换多个文件中字符串

  今天找到一种很简便的方法,来批量替换多个文件中的字符串。
  用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/oldstring/newstring/g” `grep “oldstring” -rl path`

  解释一下:
-i 在文件中直接替换,而不是输出到终端

"s/oldstring/newstring/g"

替换字符串的语法,后面的g表示替换所有的。

`grep "oldstring" -rl path`

: 注意该命令两边的引号。
-r:在目录中递归查找
-l: 输出找到包含oldstring 的文件名
  其实就是一个sed 命令 :

sed -i "s/oldstring/newstring/g" "包含oldstring的文件"

,而其中包含oldstring的文件是同过 grep “oldstring” -rl path 这条命令找出来的

  1. maillot de foot 2013 6月 7th, 2013 @ 02:07 | #1

    Many thanks a whole lot for sharing!

评论提交中, 请稍候...

留言


可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks