1

Я думал -H всегда должен печатать имя файла перед соответствующей строкой. это верно для grep, но не для bzgrep:

$ grep -H pattern file1 
file1: data pattern data

$ bzgrep -H pattern file2.bz2 
(standard input): data pattern data

Есть ли обходной путь для этого? Мне нужно grep сотни файлов bz2, я не могу распаковать их все перед поиском ...

2 ответа2

0

Я посмотрел на bzgrep. Это был действительно файл сценария bash. Модификация скрипта для исправления проблемы была довольно простой, поэтому мне было интересно, исправил ли кто-то еще ее в более новой версии bzgrep. Я обнаружил, что это исправлено в Ubuntu и Debian, но не в CentOS.

Если кто-то сталкивается с той же проблемой - просто войдите в более новую систему и скопируйте скрипт оболочки bzgrep. Это самое простое решение.

0

Насколько мне известно, нет версии grep которая бы поддерживала gzip / bzip2. Вместо этого существуют сценарии оболочки, такие как bzgrep и zgrep , которые по сути вызывают двоичные файлы gunzip / bunzip2 и передают вывод в grep через stdin. Поэтому флаг -H не может работать должным образом, если вы не вызываете grep напрямую.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .