2011-04-05 45 views
0

替換字符串rsubmit我有文本文件這樣的詩句:與* rsubmit

-------------------------- 
.... 
... rsubmit; 
........ 
........ endrsubmit; 
....... 
...... rsubmit ; 
................ 
....... endrsubmit ; 
.......... 
----------------------------- 

I want to replace 
all 'rsubmit;'  with '* rsubmit;' 
all 'rsubmit ;' with '* rsubmit ;' 
all 'endrsubmit;' with '* endrsubmit;' 
all 'endrsubmit ;' with '* endrsubmit ;' 

總之,只要把星空間開頭。

我曾嘗試使用SED的/ rsubmit \/\ * rsubmit \ /克'
但這種方法不能拿那些「endrsubmit」

的護理可以在此任何一個幫助嗎?

感謝
阿爾文SIU

回答

1

在我公司試試這個

sed 's/\(end\)\?rsubmit/* &/' 
0

紅寶石(1.9+)

$ ruby -ne 'print $_.gsub(/(.[^ \t]*rsubmit)/,"*\\1")' file 
-------------------------- 
.... 
...* rsubmit; 
........ 
........* endrsubmit; 
....... 
......* rsubmit ; 
................ 
.......* endrsubmit ; 
.......... 
----------------------------- 

awk或

$ awk '{for(i=1;i<=NF;i++) { if ($i~/rsubmit/) { $i="* "$i } } }1' file 
+0

對不起沒有註釋。另外,rsubmit;和endrsubmit;聲明可能從行首開始。 – 2011-04-05 09:43:04

+0

然後嘗試'awk'語句 – kurumi 2011-04-05 09:45:25