次のようなテキストを入力したいと思います。
foo
stuff
various stuff
could be anything here
variable number of lines
bar
Stuff I want to keep
More stuff I want to Keep
These line breaks are important
これを取得します:
foo
teststuff
bar
Stuff I want to keep
More stuff I want to Keep
These line breaks are important
これまでのところ、sed、grep、およびpcregrepを使用して読み、いじりましたが、機能させることができませんでした。おそらく Vim でそのようなことを行うことができるように見えますが、Vim を使用したことがないので、王様の痛みのように見えます。
私が試したことは次のとおりです。
sed -e s/foo.*bar/teststuff/g -i file.txt
と
pcregrep -M 'foo\s+bar\s' file.txt | xargs sed 's/foo.*bar/teststuff/g'
これらのコマンドを正しく使用していないだけなのか、それとも間違ったツールを使用しているのかはわかりません。ターミナルを使用して、行にまたがるワイルドカードを見つけて置き換える方法がないとは信じがたいです。