Showing posts with label sed. Show all posts
Showing posts with label sed. Show all posts

Monday, August 2, 2010

sed的i

給未來的裕翔

請看以下

sed 's/^cat$/dog/i' filename

那個i

不是inform

而是ignore case

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出來

真是帥呆了!

Friday, July 16, 2010

sed更完內容自動備份

給未來的裕翔

如果想要對檔案內容的某個字

做一致的更換

除了真的進去vim之外

可以考慮用sed

sed -i.bak 's/aaa/AAA/' targetFile

這樣就可以把targetFile裡面的aaa都換成AAA

-i.bak的意思是

換成AAA之後的檔案, 依然叫targetFile

但是換之前的, 存成targetFile.bak當備份

注意, -i和.bak中間不能有空白

而那個's/aaa/AAA/'的最後一個/不能省略

報告完畢