2014-02-04 6 views
0

У меня есть проблема с выполнением команды zgrep для поиска word в каталоге, где у меня есть почти 1000 файлов *.gz.zgrep несколько файлов gz в каталоге

Я пытаюсь с:

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

результата:

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

И works.I получить список из index.php вхождения без имени файла, в котором он был найден. Для меня это бесполезно, если я не знаю, в каких файлах (имени файла) оно появляется.

Как я могу это исправить?

ответ

3

Вы могли бы поставить опцию -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' {} \; 
+0

Nice! Я соглашусь, что ваше решение более элегантно, чем мое - хотя вы должны были подумать о моем моникете! :-) –

+0

Он работает спасибо! пс. не могу принять anwser еще на 3 минуты – Mithrand1r

1

Сделать поиск Grep в двух файлах, то он скажет вам, какой из них он нашел:

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

И не потребуется много времени для поиска в/dev/null.

Вот пример без/Dev/нуль:

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

и/разработчика/нуль

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] 
+1

Почему downvote, пожалуйста? –

+0

Несмотря на ожидаемый результат, я не думаю, что его следует поощрять, особенно с таким очевидным правильным способом сделать это (это тоже просто «man grep»). Он может иметь свое место, но предлагать его для начинающих кажется контрпродуктивным в долгосрочной перспективе. – plundra

+0

Как энтузиаст Perl (девиз «Больше, чем один способ сделать это») Я бы оспаривал, что существует «очевидный правильный путь». Не у всех greps есть опция «-H», и трюк/dev/null действительно защищен Grymoire здесь http://www.grymoire.com/unix/Grep.html –

Смежные вопросы