Linux: zgrep 来自 tar.gz 文件的一行中的多个字符串

Linux: zgrep multiple strings in one line from a tar.gz file

我有一个 tar.gz 文件(名为 logs.tar.gz),其中包含数千条信息,如下所示:

2020-06-07 09:02:14.983 {"action":"request","categoryName":"INN","url":"/inn/entryCategory/fetch","loginName":"+441234123456","token":"abcxyz","body":{"approvalType":""}}

我想 zgrep 跟踪上面日志示例中的三个字符串:

2020-06-07 09:02:14.983  
/inn/entryCategory/fetch  
+441234123456  


1- 我想以这种格式获取完整日期,
2- 想要获取 URL
3- 最后想要获取登录名,在我的例子中是 phone 号码。

结果我一个一个拉取成功。但是我想一次 zgrep 所有三个字符串。 (只获取包含所有三个字符串的结果)
我使用的命令是:

zgrep -a "/inn/entryCategory/fetch" logs.tar.gz  

如果我想从一行中 zgrep 三个以上的字符串,命令是什么。

如有帮助,将不胜感激

如果我理解正确,那么您可以将 .* 放在您想要匹配的每段文本之间,然后您将得到所有三者都存在的行。

例如

zgrep "2020-06-07 09:02:14.983.*/inn/entryCategory/fetch.*+441234123456 

你是这个意思吗?