使用 Zgrep 和 awk 解析 .tgz 文件并打印第一行

using Zgrep and awk to parse a .tgz file and print first row

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

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

zcat 系统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] 

根据您展示的示例,请您尝试以下操作。使用 zcat 读取您的 Input_file 然后将其输出作为标准输入发送到 awk 程序。使用 match 函数匹配正则表达式的地方,它将打印直到 error[grpId 的值直到 ] 出现。

zcat Input_file | 
awk 'match([=10=],/.*error\[grpId\[[^]]*\]/){print substr([=10=],RSTART,RLENGTH)}'