使用awk或sed,如何获取两个参数之间的内容,参数在一个文件中多次出现

例如,文件内容

Entering AAA
12
Entering BBB
13
Leaving AAA
14
Leaving AAA
15
Leaving AAA
16
Leaving BBB

目前我正在使用
cat 1.txt |sed -n '/Entering AAA/,/Leaving AAA/ p'

有了这个,我得到了第一次出现“进入 AAA”和第一次出现“离开 AAA”之间的内容
IE
Entering AAA
12
Entering BBB
13
Leaving AAA

但是,我想要从“进入 AAA”的 第一次出现 到“离开 AAA”的 最后一次出现 的内容

预期输出:
Entering AAA
12
Entering BBB
13
Leaving AAA
14
Leaving AAA
15
Leaving AAA

请帮忙。

最佳答案

简短的 tac + awk 技巧:

tac file | awk '/Leaving AAA/,/Entering AAA/' | tac

输出:
Entering AAA
12
Entering BBB
13
Leaving AAA
14
Leaving AAA
15
Leaving AAA

关于shell - 获取两个参数之间的内容,参数在一个文件中多次出现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48684569/

10-11 23:19
查看更多