zgrep目录中的多个gz文件

时间:2014-02-04 09:53:44

标签: bash grep

我在执行zgrep命令时遇到问题,因为在我有近word个文件的目录中查找*.gz

我正在尝试:

find /var/www/page/logs/ -name "*.gz" -exec zgrep '/index.php' {} \;

结果是:

GET : '/index.php'
GET : '/index.php'
GET : '/index.php'

它确实有效。我得到index.php的出现列表,没有找到文件名。除非我知道它出现在哪个文件(文件名)中,否则它对我来说没用。

我该如何解决?

2 个答案:

答案 0 :(得分:5)

您可以提供-H选项以列出文件名:

find /var/www/page/logs/ -name "*.gz" -exec zgrep -H '/index.php' {} \;

如果您只想要匹配文件列表,请使用-l

find /var/www/page/logs/ -name "*.gz" -exec zgrep -l '/index.php' {} \;

答案 1 :(得分:3)

在两个文件中进行grep搜索,然后它会告诉你它在哪个文件中找到它:

find /var/www/page/logs/ -name "*.gz" -exec zgrep '/index.php' {} /dev/null \;

在/ dev / null中搜索不会花费很长时间。

以下是没有/ dev / null的示例:

zgrep chr your.gz
>chrMCHU - Calmodulin - Human, rabbit, bovine, rat, and chicken
>chrgi|5524211|gb|AAD44166.1| cytochrome b [Elephas maximus maximus]

和/ dev / null

zgrep chr your.gz /dev/null
your.gz:>chrMCHU - Calmodulin - Human, rabbit, bovine, rat, and chicken
your.gz:>chrgi|5524211|gb|AAD44166.1| cytochrome b [Elephas maximus maximus]