我有一个名为text.txt的文件,其中包含以下内容:
blah blah..
blah abc blah..
blah abc blah
blah blah..
blah blah..
blah blah..
blah efg blah blah
blah blah..
blah abc blah
blah abc blah
blah abc blah
blah abc blah
blah abc blah
blah blah..
blah efg blah blah
blah blah..
blah blah..
我希望输出在"efg"之前的每个最后一次出现"abc"和"efg"之间的行。对于上面的例子,我想要输出:
blah abc blah
blah blah..
blah blah..
blah blah..
blah efg blah blah
blah abc blah
blah blah..
blah efg blah blah
我知道sed可以使用两个模式来选择范围,例如:
sed -n '/abc/,/efg/p' test.txt
然而,输出将从第一个“abc”的出现开始,而不是最后一个,“abc”的输出如下:
blah abc blah..
blah abc blah
blah blah..
blah blah..
blah blah..
blah efg blah blah
blah abc blah
blah abc blah
blah abc blah
blah abc blah
blah abc blah
blah blah..
blah efg blah blah
我可以在命令行上做出任何改进,以便输出从最后一次出现的 "abc" 开始吗?