从匹配替换为行尾

Gre*_*egH 29 regex sed

这应该是非常容易的,但我不能让它工作.我只是想用来sed从一个字符串替换到一行的末尾.例如,如果我有以下数据文件:

   one  two  three  five
   four two  five five six
   six  one  two seven four
Run Code Online (Sandbox Code Playgroud)

我希望用"BLAH"这个单词替换单词"two"到最后一行,输出结束:

   one BLAH
   four BLAH
   six one BLAH
Run Code Online (Sandbox Code Playgroud)

不会只是:

   sed -e 's/two,$/BLAH/g'
Run Code Online (Sandbox Code Playgroud)

我不是正则表达式中最好的,也许这就是问题所在

And*_*ark 55

这应该做你想要的:

sed 's/two.*/BLAH/'

$ echo "   one  two  three  five
>    four two  five five six
>    six  one  two seven four" | sed 's/two.*/BLAH/'
   one  BLAH
   four BLAH
   six  one  BLAH
Run Code Online (Sandbox Code Playgroud)

$是不必要的,因为.*无论如何都将在线的末尾完成,并且最后g的结果是不必要的,因为你的第一场比赛将是第一场比赛two结束.


Eri*_*rik 13

使用这个,两个<anything any number of times><end of line>

's/two.*$/BLAH/g'
Run Code Online (Sandbox Code Playgroud)