用* rsubmit替换字符串rsubmit

时间:2011-04-05 09:25:09

标签: shell ksh

我的文本文件包含以下行:

--------------------------  
.... 
... 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 \; / g'
但是这种方法不能照顾那些'endrsubmit'

任何人都可以帮忙吗?

感谢
Alvin SIU

2 个答案:

答案 0 :(得分:1)

试试这个

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

答案 1 :(得分: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