Как искать сжатые файлы с помощью Linux

Это руководство покажет вам, как искать в сжатых файлах строку текста или конкретное выражение.

Как искать и фильтровать результаты с помощью команды Grep

Одна из самых мощных команд Linux – это grep, что означает «Печать глобальных регулярных выражений».

Вы можете использовать grep для поиска шаблонов по содержимому файла или выводу другой команды.

Например, если вы запустите следующую команду ps, вы увидите список процессов, запущенных на вашем компьютере.

 ps -ef 

Результаты быстро прокручиваются на экран, и если результатов обычно много. Это делает просмотр информации особенно болезненным.

Конечно, вы могли бы использовать команду more для вывода одной страницы результатов за раз следующим образом:

 ps -ef | более 

Хотя вывод вышеприведенной команды лучше, чем предыдущей, вам все равно придется пролистать результаты, чтобы найти то, что вы ищете.

Команда grep позволяет фильтровать результаты на основе критериев, которые вы ей отправляете. Например, для поиска всех процессов с UID, установленным в «root», выполните следующую команду:

 ps -ef | grep root 

Команда grep также работает с файлами. Представьте, что у вас есть файл со списком названий книг. Представьте, что вы хотите увидеть, содержит ли файл «Красная Шапочка». Вы можете искать файл следующим образом:

 grep "Красная Шапочка" список книг 

Команда grep очень мощная, и с ней можно использовать множество полезных ключей.

Как искать сжатые файлы с помощью команды zgrep

Малоизвестным, но очень мощным инструментом является zgrep. Команда zgrep позволяет вам искать содержимое сжатого файла без предварительного извлечения содержимого.

Команда zgrep может использоваться для файлов zip или файлов, сжатых с помощью команды gzip.

В чем разница? Zip-файл может содержать несколько файлов, тогда как файл, сжатый с помощью команды gzip, содержит только исходный файл.

Для поиска текста в файле, сжатом с помощью gzip, вы можете просто ввести следующую команду:

 zgrep выражение filetosearch 

Например, представьте, что список книг был сжат с помощью gzip. Вы можете найти текст «маленькая красная шапочка» в сжатом файле с помощью следующей команды:

 zgrep "Красная Шапочка" bookslist.gz 

Вы можете использовать любое выражение и все параметры, доступные через команду grep, как часть команды zgrep.

Как искать сжатые файлы с помощью команды zipgrep

Команда zgrep хорошо работает с файлами, сжатыми с помощью gzip, но не очень хорошо работает с файлами, сжатыми с помощью утилиты zip.

Вы можете использовать zgrep, если zip-файл содержит один файл, но большинство zip-файлов содержат более одного файла.

Команда zipgrep используется для поиска шаблонов в zip-файле.

В качестве примера представьте, что у вас есть файл с названием books со следующими заголовками:

  • Гарри Поттер и тайная комната
  • Укрощение строптивой
  • О мышах и людях
  • Автостопом по Галактике
  • Гарри Поттер и Орден Феникса

Также представьте, что у вас есть файл с именами фильмов со следующими названиями:

  • Матрица
  • Гарри Поттер и тайная комната
  • Гарри Поттер и Кубок Огня
  • Звездные войны – новая надежда

Теперь представьте, что эти два файла были сжаты с использованием формата zip в файл с именем media.zip.

Вы можете использовать команду zipgrep, чтобы найти шаблоны во всех файлах внутри zip-файла. Например:

 имя шаблона zipgrep 

Например, представьте, что вы хотите найти все вхождения «Гарри Поттера», используйте следующую команду:

 zipgrep "Гарри Поттер" media.zip 

Вывод будет следующим:

книги: Гарри Поттер и Тайная комната

книги: Гарри Поттер и Орден Феникса

фильмы: «Гарри Поттер и Тайная комната»

фильмы: «Гарри Поттер и Кубок огня»

Так как вы можете использовать любое выражение с zipgrep, которое вы можете использовать с grep, это делает инструмент очень мощным и делает поиск в zip-файлах намного проще, чем распаковка, поиск и последующее сжатие снова.

Если вы хотите искать только определенные файлы в zip-файле, вы можете указать файлы для поиска в zip-файле как часть команды следующим образом:

 zipgrep "Гарри Поттер" СМИ.фильмы на молнии 

Вывод теперь будет следующим

фильмы: «Гарри Поттер и Тайная комната»

фильмы: «Гарри Поттер и Кубок огня»

Если вы хотите найти все файлы, кроме одного, вы можете использовать следующую команду:

 zipgrep "Гарри Поттер" media.zip -x книги 

Это выдаст тот же результат, что и раньше, так как он ищет все файлы в файле media.zip, кроме книг.

Оцените статью
Solutics.ru
Добавить комментарий