Существует довольно много способов поиска в сжатых текстовых файлах в ОС Linux без предварительной распаковки этих файлов. В зависимости от формата файлов вы можете просматривать файлы целиком, извлекать определенное содержимое, перемещаться по содержимому файлов в поисках интересующего текста, а иногда редактировать это содержимое.
Для того чтобы продемонстрировать вам, как это работает, я сжала текстовый файл в одной из систем Linux (/usr/share/dict/words), используя следующие команды (см. скриншоты):
Параметры -k, используемые с командами bzip2, gzip и xz, не позволяли этим командам удалять исходный файл, что они и делали по умолчанию. Полученные файлы выглядят так:
Просмотр содержимого сжатого файла
Чтобы просмотреть все содержимое сжатого файла, оставив сжатый файл низменным, можно использовать любую из этих команд:
Для 7z:
Пример:
Для bz2:
Пример:
Для gz:
Пример:
Для xz:
Пример:
Для zip:
Пример:
Вы также можете просматривать содержимое используя такие команды, как more или grep.
Поиск текста в файлах 7z
Команда 7z позволяет просматривать файлы, сжатые в архив. Но для поиска по их содержимому требуется опция извлечения (-x). Однако команда, подобная приведенной ниже, оставляет сжатый файл нетронутым, но также позволяет извлечь содержимое. Опция -so указывает команде на запись данных в стандартный вывод.
Похоже, что для файлов 7z не существует команды, подобной grep, но подобные команды работают очень хорошо.
Поиск текста в других типах сжатых файлов
Для поиска определенного текста в сжатых файлах вы можете использовать такие команды:
Для любой из этих команд вы должны увидеть слова, которые они извлекают из сжатых файлов words.