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的行至以}結尾的行之間全部的內容並打印

相關文章
相關標籤/搜索