use regex or in cat



我有一些以时间结束的日志文件

1200.gz
1215.gz
1230.gz
1245.gz
1300.gz

当我想搜索所有12点钟的文件时,我会执行zcat 12**.gz | grep whatever,但通常会花费太长时间。有没有办法使用正则表达式"或"zcat 12(00|15)?本教程使我看起来可以只使用方括号,但我得到了一个command not found错误。

这与(z)cat命令无关,这是一个shell问题。

看起来好的旧支架扩展应该适用于这种情况:

$ zcat 12{00,15}.gz | grep whatever

为什么要使用zcat and grep?您可以直接使用zgrep command在压缩文件中搜索模式:

zgrep 'whatever' 12{00,15}.gz

使用bash,可以使用扩展的globbing

shopt -s extglob
zcat 12@(00|15).gz | grep text

如果可用,为什么不使用zgrep

zgrep text 12@(00|15).gz