如何grep特定模式并打印该模式上下的所有内容,直到达到指示符(LINUX)?

pdm*_*pdm 2 linux awk grep sed

因此,我试图为特定模式设置grep,然后将该模式上下的所有内容打印到特定指示器.我不知道grep是否可行,或者我是否应该使用其他工具,如awk,sed或生成一些shell脚本.所以,如果我有以下内容:

---------------
     .....
process: failed
     ......
----------------
Run Code Online (Sandbox Code Playgroud)

----------------
     .....
process: frozen
     .....
----------------
Run Code Online (Sandbox Code Playgroud)

我希望grep'process:frozen'并且当找到'process:frozen'时想要虚线之间的所有内容.但是,虚线之间的行数可能因不同的"进程:冻结"消息而有所不同,因此我无法计算上方或下方的行数,并使用grep的-A和-B选项.先感谢您.

hek*_*mgl 6

我会使用GNU awk并将记录分隔符设置为包含16个超时的字符串:

awk '/process: (failed|frozen)/' RS='-{16}' input.file
Run Code Online (Sandbox Code Playgroud)