作者antontw (三十個扮上進青年之一)
看板Linux
標題Re: [問題] 請教一個正規表示法
時間Fri Jan 28 11:25:34 2011
※ 引述《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
不知道是不是你想要的。
--
人不作出犧牲,便得不到任何收穫;如果要得到某種東西,就必須付出同等代價。這一點
,就是鍊金術的基本原則 ── 等價交換。當時我們深信這一點就是世界的真理。
阿爾風斯‧愛力克,《鋼之鍊金術師》開場白
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.229.29
推 Arim:感謝~只是不懂如果只寫一段的話要怎麼寫才是正確的@@ 01/28 12:32
→ changyj:在ERE中,($| )才代表行尾或空白,使用gnu sed時,若要它把RE 01/28 15:01
→ changyj:解讀成ERE,必須加上-r, 如 sed -r -e '....' 01/28 15:01
推 Arim:感謝樓上大大..我忽略了這是延伸的正規表示法@@ 01/28 21:09
→ antontw:也謝謝 changyj 教我這段。 01/31 10:45