Jak vyhledávat komprimované soubory pomocí systému Linux

Tato příručka vám ukáže, jak vyhledávat komprimované soubory pro řetězec textu nebo pro konkrétní výraz.

Jak vyhledávat a filtrovat výsledky pomocí příkazu Grep

Jedním z nejsilnějších příkazů Linuxu je grep, což znamená "Global Regular Expressions Print".

Můžete použít příkaz grep pro vyhledání vzorků v rámci obsahu souboru nebo výstupu z jiného příkazu.

Například pokud spustíte následující příkaz ps , uvidíte seznam procesů, které jsou spuštěny v počítači.

ps -ef

Výsledky rychle přejděte na obrazovku a zjistíte, jestli jsou obvykle velké množství výsledků. To vede k tomu, že informace jsou obzvláště bolestivé.

Samozřejmě můžete použít příkaz více, abyste mohli najednou vypsat jednu stránku výsledků takto:

ps -ef | více

Zatímco výstup z výše uvedeného příkazu je lepší než předchozí, stále musíte procházet výsledky, abyste zjistili, co hledáte.

Příkaz grep umožňuje filtrování výsledků na základě kritérií, která mu zašlete. Chcete-li například vyhledat všechny procesy s UID nastaveným na 'root', spusťte následující příkaz:

ps -ef | grep root

Příkaz grep pracuje také na souborech. Představte si, že máte soubor, který obsahuje seznam názvů knih. Představte si, že chcete zjistit, zda soubor obsahuje "Little Red Riding Hood". Soubor můžete vyhledat následujícím způsobem:

grep "Little Red Riding Hood" seznam knih

Příkaz grep je velmi silný a tento článek zobrazí většinu užitečných přepínačů, které lze s ním použít.

Jak vyhledávat komprimované soubory pomocí příkazu zgrep

Trochu známý, ale velmi silný nástroj je zgrep. Příkaz zgrep umožňuje vyhledávat obsah komprimovaného souboru bez vyjímání obsahu.

Příkaz zgrep lze použít pro zip soubory nebo soubory komprimované pomocí příkazu gzip .

Jaký je rozdíl?

Soubor zip může obsahovat více souborů, zatímco soubor komprimovaný pomocí příkazu gzip obsahuje pouze původní soubor.

Chcete-li vyhledat text v souboru komprimovaném pomocí gzip, jednoduše zadejte následující příkaz:

zgrep výrazu filetosearch

Představte si například, že seznam knih byl komprimován pomocí gzip. V komprimovaném souboru můžete vyhledávat text "malý červený jezdec" pomocí následujícího příkazu:

zgrep "Little Red Hood" knihy.gz

Pomocí příkazu grep můžete použít jakýkoli výraz a všechna nastavení dostupná jako součást příkazu zgrep.

Jak vyhledávat komprimované soubory pomocí příkazu zipgrep

Příkaz zgrep pracuje dobře se soubory komprimovanými pomocí gzip, ale nefunguje tak dobře na souborech komprimovaných pomocí nástroje zip.

Zgrep můžete použít, pokud soubor ZIP obsahuje jeden soubor, ale většina zip souborů obsahuje více než jeden soubor.

Příkaz zipgrep se používá k vyhledání vzorků v souboru ZIP.

Jako příklad si představte, že máte soubor nazvaný knihy s následujícími tituly:

Představte si také, že máte soubor nazvaný filmy s následujícími titulky

Nyní si představte, že tyto dva soubory byly komprimovány pomocí formátu zip do souboru s názvem media.zip.

Pomocí příkazu zipgrep můžete najít vzory ve všech souborech v souboru zip. Například:

zipgrep pattern filename

Například si představte, že chcete najít všechny výskyty "Harry Potter", použijete následující příkaz:

zipgrep "Harry Potter" media.zip

Výstup bude následující:

knihy: Harry Potter a tajemná komnata

knihy: Harry Potter a řádek Phoenixu

filmy: Harry Potter a komnata tajemství

filmy: Harry Potter a Ohnivý pohár

Jak můžete použít libovolný výraz pomocí zipgrep, který můžete použít s grep, je nástroj velmi výkonný a vyhledává zipové soubory mnohem jednodušší než dekomprimování, vyhledávání a opětovné komprese.

Pokud chcete pouze vyhledat určité soubory v souboru ZIP, můžete zadat soubory, které chcete vyhledat v souboru ZIP, jako součást příkazu:

zipgrep "Harry Potter" media.zip filmy

Výstup bude nyní následující

filmy: Harry Potter a komnata tajemství

filmy: Harry Potter a Ohnivý pohár

Pokud chcete vyhledat všechny soubory kromě jednoho, můžete použít následující příkaz:

zipgrep "Harry Potter" media.zip -x knihy

Tím se vytvoří stejný výstup jako předtím, protože vyhledává všechny soubory v media.zip kromě knih.