首页 > 学院 > 开发设计 > 正文

linux利用sed去除中括号[]

2019-11-14 11:56:03
字体:
来源:转载
供稿:网友

先引用别人的博客中的内容来讲解一下sed,该博客地址为:http://www.VEVb.com/end/archive/2012/05/24/2517131.html


内容如下:

1、网络上现成的资料   格式: sed -i “s/查找字段/替换字段/g” grep 查找字段 -rl 路径

  linux sed 批量替换多个文件中的字符串

  sed -i “s/oldstring/newstring/g” grep oldstring -rl yourdir

  例如:替换/home下所有文件中的www.admin99.net为admin99.net

  sed -i “s/www.admin99.net/admin99.net/g” grep www.admin99.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出多个文件名而已


本文中的所使用的数据如下,存储到当前目录下的home.txt

[this is test]

现在想用sed将[]去掉,最初想法是先替换[,然后替换],执行如下命令

sed -i "s/[//g" home.txt sed -i "s/]//g" home.txt

结果报如下错误: sed: -e exPRession #1, char 6: unterminated `s’ command 这里写图片描述

解决方法: 由于[]是特殊字符,故需要转义一下,故命令应该成如下:

sed -i "s//[//g" home.txt sed -i "s//]//g" home.txt

最终结果如下: 这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表