Como usar os comandos zgrep e zipgrep para pesquisar arquivos compactados
Este guia mostrará como pesquisar arquivos compactados em um Linux computador para uma string de texto ou uma expressão particular.
Como pesquisar e filtrar resultados usando o comando grep
Um dos comandos mais poderosos do Linux é grep, que significa Global Regular Expressions Print. Você pode usar o grep para pesquisar padrões no conteúdo de um arquivo ou na saída de outro comando.
Como exemplo, execute o seguinte comando ps para ver a lista de processos em execução no seu computador:
ps -ef
Os resultados rolam na tela rapidamente. Se houver um grande número de resultados, a visualização das informações ficará confusa.

Para interromper a rolagem da página, use o mais comando para listar uma página de resultados por vez, da seguinte maneira:
ps -ef | mais.
Embora a saída do comando acima seja melhor do que o anterior, você ainda precisa folhear os resultados para encontrar o que precisa.
O comando grep torna possível filtrar os resultados com base nos critérios que você envia para ele. Por exemplo, para pesquisar todos os processos com o UID definido para
ps -ef | grep root.

O comando grep também funciona com arquivos. Imagine que você tem um arquivo que contém uma lista de títulos de livros e deseja ver se o arquivo contém Chapeuzinho Vermelho. Você pode pesquisar o arquivo da seguinte maneira:
grep lista de livros "Chapeuzinho Vermelho".

o comando grep é poderoso e muitos interruptores úteis podem ser usados com ele.
Como pesquisar arquivos compactados usando o comando zgrep
Uma ferramenta pouco conhecida, mas muito poderosa, é o zgrep. O comando zgrep permite pesquisar o conteúdo de um arquivo compactado sem extrair o conteúdo primeiro. O comando zgrep pode ser usado em arquivos zip ou arquivos compactados usando o comando gzip.
Qual é a diferença? Um arquivo zip pode conter vários arquivos, enquanto um arquivo compactado usando o comando gzip contém apenas o arquivo original.
Para pesquisar texto em um arquivo compactado com gzip, digite o seguinte comando:
zgrep expression filetosearch.
Por exemplo, imagine que a lista de livros foi compactada usando gzip. Você pode pesquisar o texto Chapeuzinho Vermelho no arquivo compactado usando o seguinte comando:
zgrep "Chapeuzinho Vermelho" bookslist.gz.

Você pode usar qualquer expressão e todas as configurações disponíveis com o comando grep como parte do comando zgrep.
Como pesquisar arquivos compactados usando o comando zipgrep
O comando zipgrep é usado para pesquisar padrões em um arquivo zip. O comando zgrep funciona bem com arquivos compactados usando gzip, mas não funciona tão bem em arquivos compactados usando o utilitário zip. Você pode usar zgrep se o arquivo zip contiver um único arquivo, mas a maioria dos arquivos zip contém mais de um arquivo.
Por exemplo, imagine que você tem um arquivo chamado livros com os seguintes títulos:
- Harry Potter ea Câmara Secreta
- Megera Domada
- De ratos e homens
- O Guia do Mochileiro das Galáxias
- Harry Potter e a Ordem da Fênix
Além disso, imagine que você tem um arquivo chamado filmes com os seguintes títulos:
- O Matrix
- Harry Potter ea Câmara Secreta
- Harry Potter e o Cálice de Fogo
- Star Wars: Uma Nova Esperança
Agora, imagine que esses dois arquivos foram compactados usando o formato zip em um arquivo chamado media.zip. Você pode usar o comando zipgrep para localizar padrões nos arquivos dentro do arquivo zip. Por exemplo:
nome do arquivo do padrão zipgrep.
Para encontrar todas as ocorrências de Harry Potter, use o seguinte comando:
zipgrep "Harry Potter" media.zip.
O resultado é o seguinte:
livros: Harry Potter e a Câmara Secreta
livros: Harry Potter e a Ordem da Fênix
filmes: Harry Potter e a Câmara Secreta
filmes: Harry Potter e o Cálice de Fogo.

Como você pode usar qualquer expressão com zipgrep que você pode usar com grep, isso torna a ferramenta muito poderoso e torna a pesquisa de arquivos zip mais simples do que descompactar, pesquisar e compactar novamente.
Se você deseja pesquisar apenas determinados arquivos no arquivo zip, especifique os arquivos a serem pesquisados no arquivo zip como parte do comando, da seguinte maneira:
zipgrep "Harry Potter" media.zip movies.
O resultado é o seguinte:
filmes: Harry Potter e a Câmara Secreta
filmes: Harry Potter e o Cálice de Fogo.

Se você deseja pesquisar todos os arquivos, exceto um, use o seguinte comando:
zipgrep "Harry Potter" media.zip -x books.
Isso produz a mesma saída de antes, pois pesquisa todos os arquivos dentro media.zip exceto para livros.