0

我想使用 Zgrep 和 Awk 来打印特定的行。

我使用下面的脚本。但是,我无法打印特定的行要求。

zcat SYS.20210519.tgz | awk '/11055/ && /2.5.5.5/'

如果有人可以提供帮助,那就太好了。谢谢。

文件名:SYS.20210519.tgz

文件输入:

20210519 072532  11055  ERROR   Connection is not writable, error[grpId[2.5.5.5/49.3.14.13:17126] connId[142706130] testMode[true] connInfo[ConnInfo[connId=142706130, connGrp=2.5.5.5/49.3.14.13:17126,

文件输出(需要):

20210519 072532  11055  ERROR   Connection is not writable, error[grpId[2.5.5.5/49.3.14.13:17126] 
4

1 回答 1

2

使用您显示的示例,您能否尝试以下操作。zcat用于读取您的 Input_file,然后将其输出作为标准输入发送到程序awk。在哪里使用match函数来匹配正则表达式,它将打印直到错误值 [grpId 直到]发生。

zcat Input_file | 
awk 'match($0,/.*error\[grpId\[[^]]*\]/){print substr($0,RSTART,RLENGTH)}'
于 2021-05-25T12:11:40.380 回答