pipe道特定的gziped日志文件列表到zgrep中

我在获取一堆gzip的apache访问日志文件中的行列表时遇到了麻烦。 我想要的只是获得编号为1和2的日志文件列表,然后grep通过它们并提取具有特定匹配文本的行。

我原来只是为了访问日志归档1而工作。“/ pathname”文本是我正在寻找的文本:

zgrep /pathname/ access_*.log.1.gz 

由于ls不支持正则expression式,我想出了以下内容来从我想要的文件的当前目录中获取一个列表:

 find . -maxdepth 1 -type f -regex '\./access.+\.log\.[1|2]\.gz' -printf '%P\n' find . -maxdepth 1 -type f -regex '\./access.+\.log\.[1|2]\.gz' | sed "s|^\./||" 

我现在的问题是采取该文件列表输出和zgrepping通过文件返回符合我的文本的文件中的行。 我在这里叫错了树吗?

尝试:

 zgrep /pathname/ access_*.log.{1,2}.gz 

或者,使用find -exec:

 find . -maxdepth 1 -type f -regex '\./access.+\.log\.[1|2]\.gz' -exec zgrep /path/ {} \; 

我没有apache日志,所以我使用了一个类似但不相同的模式:

 ls /var/log/*.[12].gz 

shell不支持正则表达式,但用[123]或[1-3],以及{1,2,3}和{1..3}甚至{o..w}和{066}进行分组。 .091}。