Friday, July 30, 2010

sed的delimiter

給未來的裕翔

剛看到一個指令

rpm -ql rpm | sed -n '/bin/s:.*/::p'

一開始看到::就傻眼了

而且還有那個s:

經我小小的大腦思考後

我判斷那個::和:都是delimiter

而完整的意思就是

先以rpm -ql rpm把套件rpm所含有的檔案列出來

再以sed作處理, -n的意思是, sed只列出作處理的那幾行

不加-n的話, 從stdin進來的都會列出來

再來就是重頭戲'/bin/s:.*/::p'

上色加空白以表示方便的看法

' / bin / s : .*/ : : p'

紅色的斜線是第一階段的delimiter, 區隔範圍動作

/bin/的意思是鎖定stdin含有bin的行

後接的s:.*/::p是說, 任意連續字元 .* 以斜線 / 當右側結束字元(貪婪原則)

全部替換為

然後print出來

真是帥呆了!

No comments:

Post a Comment