Linux ·

Linux命令之sed批量替换字符串操作

使用sed命令可以进行字符串的批量替换操作,以节省大量的时间及人力;

使用的格式如下:

 

sed -i "s/oldstring/newstring/g" `grep oldstring -rl path`

其中,oldstring是待被替换的字符串,newstring是待替换oldstring的新字符串,grep操作主要是按照所给的路径查找oldstring,path是所替换文件的路径;

-i选项是直接在文件中替换,不在终端输出;

-r选项是所给的path中的目录递归查找;

-l选项是输出所有匹配到oldstring的文件;

 

实例:
1. 替换指定文件的字符串

sed -i "s/oldstring/newstring/g" filename

sed -i "s/6/sk/g" ./test01.txt

2. 字符串替换批量文件操作

sed -i "s/6/sk/g" ·grep 6 -rl /home/work/test`

sed -i "s/6/sk/g" ·grep 6 -rl /home/work/test/*.sh`

可将test目录下的所有相关文件都进行字符串替换

参考:

1.http://blog.163.com/daniel_ao/blog/static/1100988432010722642551/

2. http://www.jb51.net/LINUXjishu/155122.html

 

 

sed -i "" "s/搜索的字符串/替换的字符串/g" `grep搜索的字符串 -rl 所在目录`

由于mac需要标准输入 所以 -i 后面加上""

参与评论