Como buscar ficheiros comprimidos usando Linux

Esta guía mostraralle como buscar ficheiros comprimidos para unha cadea de texto ou para unha determinada expresión.

Como buscar e filtrar os resultados empregando o comando Grep

Un dos comandos de Linux máis potentes é grep que significa "Impresión global de expresións regulares".

Podes usar grep para buscar patróns dentro dos contidos dun ficheiro ou a saída dun outro comando.

Por exemplo, se executas o seguinte comando ps , verás unha lista de procesos que se están a executar no teu computador.

ps -ef

Os resultados móstranse rápidamente á pantalla e se adoitan haber unha gran cantidade de resultados. Isto fai que a información sexa especialmente dolorosa.

Podería, por suposto, usar o comando máis para listar unha páxina de resultados á vez como segue:

ps -ef | máis

Aínda que a saída do comando anterior é mellor que a anterior, aínda tes que facer unha páxina cos resultados para atopar o que estás buscando.

O comando grep fai posible filtrar os resultados segundo os criterios que lle envíe. Por exemplo, para buscar todos os procesos co UID definido como 'root', execute o seguinte comando:

ps -ef | raíz grep

O comando grep tamén funciona nos ficheiros. Imaxina que tes un arquivo que contén unha lista de títulos de libros. Imaxina que queres ver se o ficheiro contén "Little Red Riding Hood". Podes buscar o ficheiro como segue:

grep "Bookshop Little Red Riding Hood"

O comando grep é moi poderoso e este artigo mostrará a maioría dos interruptores útiles que se poden usar con el.

Como buscar ficheiros comprimidos usando o comando zgrep

Unha ferramenta pouco coñecida pero moi potente é zgrep. O comando zgrep permítelle buscar os contidos dun arquivo comprimido sen antes extraer os contidos.

O comando zgrep pode usarse contra arquivos zip ou arquivos comprimidos usando o comando gzip .

Cal é a diferenza?

Un ficheiro zip pode conter varios ficheiros mentres que un ficheiro comprimido usando o comando gzip só contén o ficheiro orixinal.

Para buscar texto dentro dun ficheiro comprimido con gzip pode simplemente ingresar o seguinte comando:

filetosearch de expresión zgrep

Por exemplo, imaxine que a lista de libros foi comprimida usando gzip. Podes buscar o texto "pequeno capó vermello" no ficheiro comprimido usando o seguinte comando:

zgrep "Little Red Riding Hood" bookslist.gz

Pode usar calquera expresión e todas as opcións dispoñibles a través do comando grep como parte do comando zgrep.

Como buscar ficheiros comprimidos usando o comando zipgrep

O comando zgrep funciona ben con ficheiros comprimidos usando gzip pero non funciona tan ben nos ficheiros comprimidos usando a utilidade zip.

Pode usar zgrep se o ficheiro zip contén un só ficheiro, pero a maioría dos arquivos zip conteñen máis dun ficheiro.

O comando zipgrep úsase para buscar patróns dentro dun arquivo zip.

Por exemplo, imaxina que tes un arquivo chamado libros cos seguintes títulos:

Tamén podes imaxinar que tes un arquivo chamado películas cos seguintes títulos

Agora imaxina que estes dous ficheiros foron comprimidos usando o formato zip nun arquivo chamado media.zip.

Podes usar o comando zipgrep para atopar patróns dentro de todos os ficheiros dentro do arquivo zip. Por exemplo:

nome de ficheiro do patrón zipgrep

Por exemplo, imaxine que quería atopar todas as aparicións de "Harry Potter" que usaría o seguinte comando:

zipgrep "Harry Potter" media.zip

A saída será a seguinte:

libros: Harry Potter e A Cámara de segredos

libros: Harry Potter ea orde do fénix

películas: Harry Potter ea cámara de segredos

películas: Harry Potter eo cáliz de lume

Como pode usar calquera expresión con zipgrep que pode usar con grep, isto fai que a ferramenta sexa moi poderosa e faga que os ficheiros zip se fagan moito máis simple que descomprimir, buscar e comprimir de novo.

Se só desexa buscar certos ficheiros dentro do arquivo zip, pode especificar os ficheiros a buscar no ficheiro zip como parte do comando do seguinte xeito:

zipgrep "Harry Potter" media.zip películas

A saída agora será a seguinte

películas: Harry Potter ea cámara de segredos

películas: Harry Potter eo cáliz de lume

Se desexa buscar todos os ficheiros, excepto un pode usar o seguinte comando:

zipgrep "Harry Potter" media.zip -x libros

Isto producirá a mesma saída que antes, xa que está a buscar todos os ficheiros dentro de media.zip excepto os libros.