2012-06-23 44 views
0

我希望能去:SED添加文本週圍的正則表達式

sed "s/^\(\w+\)$/leftside\1rightside/" 

,並有由(\w+\)匹配該集團萊夫特賽德'和「rightside」之間出現英寸

但是,好像我必須將它重複兩次,一次在文本的左側,另一次在右側。如果有人知道一個方法來做到這一點,我會很感激。

+2

我想不出爲什麼它不會像你寫的那樣工作。 –

+0

向我們顯示您的輸入和輸出。 – tuxuday

回答

0

它不工作的原因是你可能指定了錯誤的正則表達式。在你的情況下,文本將被添加在行尾只有如果它由只有字字符(鑑於您的sed版本支持\w表示法)。如果不使用-r選項,您也不會逃脫+,您應該這樣做。

嘗試從sed "s/^\(.*\)$/leftside\1rightside/"開始,或者僅僅從sed "s/.*/leftside&rightside/"開始並從此開始工作。

+0

我檢查過,\ w不支持 - 這是主要問題。此版本的工作原理:$ echo「FIC」|所以我現在想象它只是寫\ w字符類的其餘部分的問題 –

+0

@ user1476674'sed'有它自己的東西字符類的符號。試試'[[:alpha:]]'而不是'\ w'。例如,如果你向下滾動一點,這些類就會列在[here](http://www.gentoo.org/doc/en/articles/l-sed2.xml)中。此外,如果問題得到解決,請考慮[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)答案。 –