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.

Comando Linux PS

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

raiz, execute o seguinte comando:

ps -ef | grep root. 
Linux ps com grep

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". 
Arquivo grep do Linux

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. 
Linux zgrep

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.
Linux zipgrep

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.
Linux zipgrep pesquisa por arquivo

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.