請教一個正規表示法 - Linux

Table of Contents

※ 引述《Arim (Arim5566)》之銘言:
: 各位板友好
: 小弟初次接觸正規表示法
: 想請問一下
: 如果我有一個test.dat的內容如下的話
: bus b a
: 現在想要利用sed把a跟b用空字串取消掉
: 本來是打sed 's/ [a-z]($| )//g' test.dat
: 其中的($| )表示檔案結尾或者是空白
: 可是結果是一個都不能取代
: 請問我應該要怎麼寫才是正確的?
就不要省事,寫兩段:
$ cat test.dat
bus b a
airplane c d

$ sed -e 's/ [a-z]$/ /' -e 's/ [a-z] / /' test.dat
bus
airplane

不知道是不是你想要的。

--

人不作出犧牲,便得不到任何收穫;如果要得到某種東西,就必須付出同等代價。這一點
,就是鍊金術的基本原則 ── 等價交換。當時我們深信這一點就是世界的真理。

阿爾風斯‧愛力克,《鋼之鍊金術師》開場白

--

All Comments

Ula avatarUla2011-01-30
感謝~只是不懂如果只寫一段的話要怎麼寫才是正確的@@
Lily avatarLily2011-01-31
在ERE中,($| )才代表行尾或空白,使用gnu sed時,若要它把RE
解讀成ERE,必須加上-r, 如 sed -r -e '....'
Aaliyah avatarAaliyah2011-02-02
感謝樓上大大..我忽略了這是延伸的正規表示法@@
Thomas avatarThomas2011-02-05
也謝謝 changyj 教我這段。