sed是unix里的一个轻量级的流编辑器,深刻使用后发现的确很强大,在处理有些配置文件的时候都不要去写程序了,一个sed命令就搞定.不来理论了,直接上用法 php
[root@localhost ~]#sed -i '/pass/s/123456/654321/' test.conf 编程
把test.conf文件里含有字符串'pass'行里面的'123456'替换为'654321' 编程语言
[root@localhost ~]#sed -e "s/sell_[0-9a-z]/sell_/g" -e "s/sell_\[/sell_id/g" test.conf 编辑器
同时替换知足正则的字符串,这个主要了解的是sed的链接屡次操做的命令'-e',注意:在sed中匹配数字用\d是无效的,会匹配字母d spa
[root@localhost ~]#sed 's/local\(.*=[^a-z]\)\(.*_index\)/agent\1 192.168.19.230:9312\2/g' test.conf unix
一个复杂的正则:后面的\1 和 \2分别表明了前面的第一个括号和第二个括号所匹配的内容,注意:还有一个不一样点就是这里的'('和')'都用反斜杠转义了,而在sed中单独匹配'('或者')'却不须要加转义符.这和咱们通常的编程语言的正则(如php)正好相反 字符串
[root@localhost ~]#sed -n '1085,1095p' test.conf test
打印test.conf文件的1085行到1095行的全部内容 sed
[root@localhost ~]#sed '2r tmp.conf' test.conf 配置
从test.conf文件的第三行开始插入tmp.conf文件的全部内容
[root@localhost ~]#sed -n '/^admin_buy$/,/}$/p' test.conf
匹配内容为admin_buy的行至以}结尾的行之间全部的内容并打印