我要删除START和END关键字之间的行,如下所述:
START text1 text2 text3 START text4 END text5 text6 START test7 START test8 END
我的问题是START关键字并非总是以END结束。从上面的示例中可以看出,第一个START不以END结尾,而是在TEXT3之后又另一个START。
所以我不能使用以下sed命令:
sed '/START/,/END/d' test.txt
因为它将删除从TEXT1到TEXT 4以及TEXT7-8的行。
但是我只想删除TEXT4和TEXT8行。因此,以下输出应为:
START text1 text2 text3 text5 text6 START text7
通过逐行反转文件变得更加容易:
$ tac test.txt | sed '/END/,/START/d' | tac START text1 text2 text3 text5 text6 START test7