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"
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:
- Harry Potter ea cámara dos segredos
- Taming Of The Shrew
- De ratos e homes
- A guía de pasaxeiros para o Galaxy
- Harry Potter ea orde do fénix
Tamén podes imaxinar que tes un arquivo chamado películas cos seguintes títulos
- A matriz
- Harry Potter ea cámara dos segredos
- Harry Potter e o cáliz de lume
- Star Wars - Unha nova esperanza
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.