Това ръководство ще ви покаже как да търсите компресирани файлове за низ от текст или за конкретен израз.
Как да търсите и филтрирате резултатите чрез командата 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" книжен списък
Как да търсите компресирани файлове, като използвате командата 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 файл.
Като пример, представете си, че имате файл, наречен "книги" със следните заглавия:
- Хари Потър и камарата на тайните
- Мързел град
- За мишките и хората
- Пътеводител на галактическия стопаджия
- Хари Потър и Орденът на Феникс
Представете си също, че имате файл, наречен филми със следните заглавия
- Матрицата
- Хари Потър и камарата на тайните
- Хари Потър и Огненият бокал
- Star Wars - нова надежда
Сега си представете, че тези два файла са били компресирани чрез zip формат във файл, наречен media.zip.
Можете да използвате командата zipgrep, за да намерите шаблони във всички файлове в zip файла. Например:
zipgrep шаблон на файла
Например, представете си, че искате да намерите всички събития на "Хари Потър", ще използвате следната команда:
zipgrep "Хари Потър" media.zip
Продукцията ще бъде, както следва:
книги: Хари Потър и камарата на тайните
книги: Хари Потър и Орденът на Феникс
филми: Хари Потър и камарата на тайните
Филми: Хари Потър и Огненият бокал
Тъй като можете да използвате всеки израз с zipgrep, който можете да използвате с grep това прави инструмента много мощен и прави търсенето на zip файлове много по-лесно, отколкото декомпресиране, търсене и след това компресиране отново.
Ако искате да търсите само определени файлове в zip файла, можете да определите файловете за търсене в zip файла като част от командата, както следва:
zipgrep "Хари Потър" media.zip филми
Резултатът ще бъде както следва
филми: Хари Потър и камарата на тайните
Филми: Хари Потър и Огненият бокал
Ако искате да търсите всички файлове с изключение на един, можете да използвате следната команда:
zipgrep "Хари Потър" media.zip -x книги
Това ще доведе до същото изходно действие, както преди, тъй като търси всички файлове в media.zip, с изключение на книгите.