sed高级用法(目前所用到过的)

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的行至以}结尾的行之间全部的内容并打印

相关文章
相关标签/搜索