zgrep - список совпадающих имен файлов - PullRequest
1 голос
/ 22 ноября 2011

grep или egrep показывают имя файла соответствующего файла, когда вы определяете опцию "-l".

Однако у меня есть огромный файл (tar.gz), который содержит тысячи файлов, и мне нужно выяснить, какой из них содержит шаблон. Проблема:

zgrep -la testPattern HugeFile.tar.gz

дает мне только имя файла tar.gz, а не файл в нем, который соответствует шаблону.

Кажется, это ошибка для меня, но, может быть, я что-то неправильно понял ... Кто-нибудь знает, как это сделать без архивирования или разархивирования?

Ответы [ 2 ]

4 голосов
/ 22 ноября 2011

zgrep'ing tar.gz не будет делать то, что вы ожидаете (это эффективно сокращает необработанный образ tar).

Однако вы можете воспользоваться альтернативным подходом, как ответили здесь на другие вопросы:

Выполнение операции grep в файлах tar без распаковки

1 голос
/ 22 ноября 2011

zgrep - это скрипт оболочки, который использует gzip для распаковки файлов в стандартный вывод и передачи в grep.Он не может определить, какой файл внутри тарбола попал в совпадение.

Один из возможных способов, которым вы можете попробовать: установить архив, который использует fuse и libarchive, позволяет вам «смонтировать» тарбол как файловую систему.Тогда вы должны быть в состоянии grep под точкой монтирования.Я не пробовал раньше, но это лучше, чем распаковывать все для grep.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...