我想输入一些这样的文本:
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'
我不确定是我没有正确使用这些命令,还是我使用了错误的工具。我很难相信没有办法使用终端来查找和替换跨行的通配符。