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 (打印前五行并退出,实际是处理到第五行就退出)
好了,有了基本的操作,剩下的就是去发挥了!