これは信じられないほど簡単なはずですが、動作させることはできません。 sed
を使用して、1つの文字列から行末までを置き換えたいだけです。たとえば、次のデータファイルがある場合:
one two three five
four two five five six
six one two seven four
そして、単語 "two"から行末までを、単語 "BLAH"で置き換えて、出力に置き換えたいと思います。
one BLAH
four BLAH
six one BLAH
それだけではありません:
sed -e 's/two,$/BLAH/g'
私は多分それが問題だと正規表現で最高ではありません
これはあなたが望むことをするはずです:
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
$
は.*
はとにかく行末で終了し、最初の一致は行末までの最初のg
になるため、末尾のtwo
は不要です。
これを使用して、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