Linux | sed

在服务器上,我们通常希望的是:如环境部署等工作都按照脚本来做。

自动化部署少不了修改很多的配置文件,这些工作,sed 几乎都可以胜任。

命令格式:

  sed [-option] [command] filename

  [command] 格式:[adress-range] [pattern] [sed-command] (例如:sed -n '5,8p' test.txt,打印test.txt的5-8行

-n  抑制输出(sed是一直面向流处理的工具,一次读取一行,如果不用-n,会将所有操作的行都打印一遍。

-r  用正则表达式,如果不加-r,括号前面就得加转义符了。

 

基本操作:

 

  查找:sed -n ‘/test$/p' test.txt

  删除:sed -i '/^test/d' test.txt

  打印:sed -n '2, 4p' test.txt

 

  提取:sed -rn '/end$/s/^name:(\w+)\sage:([0-9]+)\s.*/\1 \2/p' test.txt  (name:heheda age:21 end,筛选 end 结尾,然后提取 name 和 age)

  替换:sed -i 's/test/testing/g' test.txt  (替换也是 s 命令,前面加 -i 参数,g命令表示替换所有)

 

  插入:sed -i '5i/inset testing/' test.txt  (第五行插入目标内容,原来的第五行变成第六行)

  追加:sed -i '5a/add testing/' test.txt  (在第五行追加内容,相当于插入到第六行)

  更改:sed -i '5c/correct testing/' test.txt

 

  转换:echo "test" | sed 'y/tes/TES/'

  退出:sed '7q' test.txt  (打印前五行并退出,实际是处理到第五行就退出)

 

好了,有了基本的操作,剩下的就是去发挥了!

posted on 2015-10-02 19:56  Excavator  阅读(134)  评论(0编辑  收藏  举报

导航