先引用别人的博客中的内容来讲解一下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最终结果如下:
新闻热点
疑难解答