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
Source: Stackoverflow.com