how to replace a file string using sed in linux

 1. 已有的命令   

       格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`
       linux sed 批量替换多个文件中的字符串: (此命令很强大)
       sed -i "s/oldstring/newstring/g"  `grep oldstring -rl yourdir`

     解释一下:
     -i  表示 inplace edit,就地修改文件
     -r 表示recursive ,搜索子目录
     -l 表示line number,输出匹配的文件名

  例如:替换/home下所有文件中的www.xxx.net为xxx.net
  sed -i "s/www.xxx.net/xxx.net/g" `grep www.xxx.net -rl /home`
  exp:sed -i "s/shabi/$/g" `grep shabi -rl ./`

2、自己额外附加
  2.1 将文件1.txt内的文字“garden”替换成“mirGarden”
  # sed -i "s/garden/mirGarden/g" 1.txt   //sed -i 很简单

  2.2 将当前目录下的所有文件内的“garden”替换成“mirGarden”
  ## sed -i "s/garden/mirGarden/g" `ls` //其实也就是ls出多个文件名而已

3、 查询

      1.Linux查找不以#开头的行的命令
       如:cat /etc/vsftpd/vsftpd.conf | grep -v "#"

猜你喜欢

转载自wuchengyi.iteye.com/blog/2191466
今日推荐