Использование `tac` на zipped-файлах

tac unzipped.log | grep -m1 pattern tac unzipped.log | grep -m1 pattern работает отлично, но я не могу использовать команду tac для zip-файлов.

tac zipped.gz | zgrep -m1 pattern tac zipped.gz | zgrep -m1 pattern ничего не возвращает.

Есть ли способ использовать tac без разархивирования моего файла?

One Solution collect form web for “Использование `tac` на zipped-файлах”

gzip работает как поток от первого байта до последнего байта; вы не можете начать декомпрессию посередине. Большинство инструментов сжатия делают это, потому что если вы разрешаете распаковывать с середины, то вы не используете в полной мере сходства между началом и концом. Поэтому для поиска строки в gzip-файле вам нужно все равно распаковать весь файл (по крайней мере до первого совпадения, если вас интересует только первое совпадение).

Кроме того, tac будет менять строки, а не байты. Так как декомпрессированный файл не разделяется на строки (они являются двоичными файлами, где разрыв строки является байтом, как и любой другой), это может помешать файлу во что-то непригодное.

Вы можете отменить распакованный файл:

 zcat zipped.gz | tac | grep -m1 pattern 

Однако это не обязательно быстрее, чем поиск всего файла, потому что сам tac не так быстр (большинство приложений читаются от начала до конца, поэтому ядра стремятся оптимизировать этот случай, а затем tac должен проверять каждый байт, чтобы видеть если это новая строка). Если вы хотите только последнюю строку, вы можете ее извлечь:

 zcat zipped.gz | grep pattern | tail -n1 
  • Найти все слова, начинающиеся с Q
  • Добавьте возврат каретки к выходу `tail` при использовании` grep`
  • Как grep для текста в файле и отображать абзац с текстом?
  • Как запустить grep в одном столбце?
  • Перенаправление вывода GREP в разные текстовые файлы в зависимости от содержимого захвата
  • Согласование шаблонов по нескольким строкам
  • Использование grep для нахождения строки из текстового файла
  • Укажите, сколько строк начинается с того, какие символы
  • Чтение шаблонов grep из файла
  • Не удалось grep первым персонажем
  • Найдите каждую строку, соответствующую шаблону, но напечатайте только строку над ней
  • Interesting Posts

    Установленный SFTP для AWS Linux – Невозможно прочитать

    Как захватить упорядоченный STDOUT / STDERR и добавить временную метку / префиксы?

    Как я могу получить время разблокировки экрана в Gnome на более поздних вариантах Red Hat?

    Rsync вытащить из / home / * / в тот же каталог

    В домашнем каталоге новых пользователей создайте подкаталог с определенной группой и разрешениями

    Как преобразовать отметки времени в столбце в дату?

    Google Chrome скрыт. Доступно на% 1 (I18N_ARGUMENT_MISSING

    Медленное нажатие кнопки мыши в растяжке Debian

    Что означает `l` в листинге` ls`?

    Отладка multiseat: как запустить два макета X-сервера вместе без диспетчера дисплеев?

    Связанные к VirtualBox клоны – обновляет ли родитель автоматически обновление дочерних элементов?

    Если логические тома LVM2 на твердотельном диске имеют свободное пространство на 25%?

    grep: память исчерпана

    Как запустить программу GUI как другого пользователя (Debian)?

    Если я запускаю TOR как корень, это нарушает мою анонимность?

    Linux и Unix - лучшая ОС в мире.