Как да търсите компресирани файлове с Linux

Това ръководство ще ви покаже как да търсите компресирани файлове за низ от текст или за конкретен израз.

Как да търсите и филтрирате резултатите чрез командата Grep

Една от най-мощните Linux команди е grep, която означава "Global Regular Expressions Print".

Можете да използвате grep, за да търсите шаблони в съдържанието на файл или изхода от друга команда.

Като пример, ако изпълните следната команда ps , ще видите списък с процеси, които се изпълняват на компютъра ви.

ps-еф

Резултатите превъртете до екрана бързо и ако обикновено има голям брой резултати. Това прави разглеждането на информацията особено болезнено.

Бихте могли, разбира се, да използвате по-голямата команда, за да изведете наведнъж една страница с резултати, както следва:

ps-ее | Повече ▼

Докато изходът от горепосочената команда е по-добър от предходния, все още трябва да прегледате резултатите, за да намерите това, което търсите.

Командата grep позволява филтрирането на резултатите въз основа на критериите, които изпращате до нея. Например, за да търсите всички процеси с UID, зададен на "root", изпълнете следната команда:

ps-ее | grep root

Командата grep работи и върху файлове. Представете си, че имате файл, който съдържа списък с заглавията на книгите. Представете си, че искате да видите дали файлът съдържа "Little Red Riding Hood". Можете да търсите файла както следва:

grep "Little Red Riding Hood" книжен списък

Командата grep е много мощна и тази статия ще покаже повечето от полезните ключове, които могат да бъдат използвани с нея.

Как да търсите компресирани файлове, като използвате командата zgrep

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

Командата zgrep може да се използва срещу zip файлове или файлове, компресирани чрез командата gzip .

Каква е разликата?

Файлът с zip може да съдържа няколко файла, докато компресиран с командата gzip файл съдържа само оригиналния файл.

За да търсите текст в компресиран с gzip файл, можете просто да въведете следната команда:

zgrep expression filetosearch

Например, представете си, че списъкът с книги е бил компресиран с помощта на gzip. Можете да потърсите текста "малък червен качулк" в компресирания файл, като използвате следната команда:

zgrep "Червената шапчица" books.gz

Можете да използвате произволен израз и всички настройки, достъпни чрез командата grep като част от командата zgrep.

Как да търсите компресирани файлове, като използвате командата zipgrep

Командата zgrep работи добре със файлове, компресирани с gzip, но не работи толкова добре на файлове, компресирани с помощта на zip utility.

Можете да използвате zgrep, ако zip файлът съдържа един файл, но повечето zip файлове съдържат повече от един файл.

Командата zipgrep се използва за търсене на модели в рамките на zip файл.

Като пример, представете си, че имате файл, наречен "книги" със следните заглавия:

Представете си също, че имате файл, наречен филми със следните заглавия

Сега си представете, че тези два файла са били компресирани чрез zip формат във файл, наречен media.zip.

Можете да използвате командата zipgrep, за да намерите шаблони във всички файлове в zip файла. Например:

zipgrep шаблон на файла

Например, представете си, че искате да намерите всички събития на "Хари Потър", ще използвате следната команда:

zipgrep "Хари Потър" media.zip

Продукцията ще бъде, както следва:

книги: Хари Потър и камарата на тайните

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

филми: Хари Потър и камарата на тайните

Филми: Хари Потър и Огненият бокал

Тъй като можете да използвате всеки израз с zipgrep, който можете да използвате с grep това прави инструмента много мощен и прави търсенето на zip файлове много по-лесно, отколкото декомпресиране, търсене и след това компресиране отново.

Ако искате да търсите само определени файлове в zip файла, можете да определите файловете за търсене в zip файла като част от командата, както следва:

zipgrep "Хари Потър" media.zip филми

Резултатът ще бъде както следва

филми: Хари Потър и камарата на тайните

Филми: Хари Потър и Огненият бокал

Ако искате да търсите всички файлове с изключение на един, можете да използвате следната команда:

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

Това ще доведе до същото изходно действие, както преди, тъй като търси всички файлове в media.zip, с изключение на книгите.