在文件中搜索模式的最后一次出现,并在删除模式行之后删除所有内容

2 unix awk html-table sed

我试图在文件中搜索最后一次出现的模式,并删除包含最后一个模式的行之后的所有内容.我想知道它是否可能使用awk或sed.提前致谢.

aaaaaa bbbbb cccccc
aaaaaa pattern dddddd
eeeeee fffff gggg
qqqq eeee rrrr 
Run Code Online (Sandbox Code Playgroud)

期望的输出:

aaaaaa bbbbb cccccc
aaaaaa pattern dddddd
Run Code Online (Sandbox Code Playgroud)

fed*_*qui 7

tac 救援:

$ tac b | awk '/pattern/ {p=1}p' | tac
aaaaaa bbbbb cccccc
aaaaaa pattern dddddd
Run Code Online (Sandbox Code Playgroud)

另一个例子:

$ cat a
aaaaaa bbbbb cccccc
aaaaaa pattern dddddd
eeeeee fffff gggg
aaaaaa pattern dddddd
qqqq eeee rrrr
$ tac a | awk '/pattern/ {p=1}p' | tac
aaaaaa bbbbb cccccc
aaaaaa pattern dddddd
eeeeee fffff gggg
aaaaaa pattern dddddd
Run Code Online (Sandbox Code Playgroud)