我的文本文件包含以下行:
--------------------------
....
... 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
答案 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