首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用多种模式运行zgrep?

如何使用多种模式运行zgrep?
EN

Unix & Linux用户
提问于 2022-03-18 13:38:04
回答 2查看 4.2K关注 0票数 1

我知道如何用grep来完成它,但是这个命令不适用于zgrep

代码语言:javascript
复制
grep -E 'Pattern1.*Patter2' fileName

我使用zgrep来匹配.json.gz文件中的模式。

因为文件太大,我想要BOTH pattern1和pattern2,所以订单并不重要。

有可能实现吗?

EN

回答 2

Unix & Linux用户

发布于 2022-03-18 14:01:11

grep没有逻辑和运算符。仍然可以使用regex或操作符实现同样的结果:

代码语言:javascript
复制
zgrep -E 'pattern1.*pattern2|pattern2.*pattern1' filename
票数 0
EN

Unix & Linux用户

发布于 2022-03-18 16:24:05

我想(但还不太清楚),您希望找到pattern1和pattern2都存在的行,但要按任何顺序排列。

直进解决方案是zcat FileName | grep -E pattern1 | grep -E pattern2,但这意味着整个解压缩文件将通过第一个管道传输。

如果zgrep确实处理了这个问题,并且文件中只出现了有限数量的pattern1,那么zgrep -E pattern1 | grep -E pattern2就可以工作。(如果pattern2是最罕见的,您可能需要切换它们。)

@ might两次给出的解决方案将有效,但取决于pattern1pattern2中可能很难进入的困难。

没有回答这个问题:我想按任何顺序(但不受内存限制)搜索两个字符串,并且发现perl -ale 'print if (/pattern1/ && /pattern2/)' (大多数语言都允许类似的东西,但我喜欢perl)是一个很好的解决方案。(在您的情况下,您必须在脚本中处理解压)

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/695954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档