写自动化脚本时,会需要修改其他的配置文件,将某些配置值替换成本次的配置,手动改完再去执行脚本不是不可,只不过一两次还可以,次数多了就有些浪费时间了,这时就用到了sed命令,这是个强大的文本编辑命令。
sed命令和vi命令有些像,主要体现在命令的格式上,最大的区别在于vi需要把文件打开之后才可编辑,而sed则不需要打开即可编辑,当文件的体量特别大的时候,比如上万行、上十万、百万行,sed的优势就体现出来了。
来一下man命令,就可以看到sed的详尽介绍了,这里说几个常用的用法。总的来说,无非就是删除、增加、查找替换,其他的需求就没要用sed了。
1. 删除
- e: expression,表达式,也就是指后面引号里的内容
- m,nd: 删除第m到第n行,d,delete
2. 增加
1 2 3
| sed -e 'ni\ content to insert or append ' test.txt
|
- e: 同上
- ni: 在第n行前面插入一行,a表示在第n行后面插入一样
3. 查找替换
1 2
| sed "s/pattern/replace/" test.txt sed "n,ms/pattern/replace/g" test.txt
|
- s: substitute,替换
- n,ms: 指定行范围
- pattern: 支持正则
4. 替换原文件
以上命令在执行后,都是以打印的方式输出,而不会修改原文件,如果要修改原文件,则要使用-i命令,举个例子
1
| sed -i '' -e '1,5d' test.file
|