开发者

Replacing from match to end-of-line

开发者 https://www.devze.com 2023-02-11 04:20 出处:网络
This should be incredibly easy but I can\'t get it to work开发者_运维技巧.I just want to use sed to replace from one string to the end of a line.For example if I have the following data file:

This should be incredibly easy but I can't get it to work开发者_运维技巧. I just want to use sed to replace from one string to the end of a line. For example if I have the following data file:

   one  two  three  five
   four two  five five six
   six  one  two seven four

and I want to replace from the word "two" through the end of the line with the word "BLAH" ending up with the output:

   one BLAH
   four BLAH
   six one BLAH

wouldn't that just be:

   sed -e 's/two,$/BLAH/g'

I'm not the best at regex to maybe that's the problem


This should do what you want:

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

The $ is unnecessary because the .* will finish at the end of the line anyways, and the g at the end is unnecessary because your first match will be the first two to the end of the line.


Use this, two<anything any number of times><end of line>

's/two.*$/BLAH/g'


awk

awk '{gsub(/two.*/,"")}1' file

Ruby

ruby -ne 'print $_.gsub(/two.*/,"")' file
0

精彩评论

暂无评论...
验证码 换一张
取 消