O zgrep recursivo não funciona

6

Eu tenho uma hierarquia de diretórios que contém vários arquivos .gz . Eu quero ser capaz de recursivamente grep-los para a string "foo". Pelo que li on-line, o seguinte deve funcionar:

zgrep -R -H "foo" .

No entanto, isso nunca retorna nenhum resultado. Se eu substituir o ponto pelo nome de um arquivo, ele funciona. Por exemplo,

zgrep -R -H "foo" myFile.gz

no entanto, obviamente, isso não será mais recursivo.

Eu sei que "foo" está em alguns dos arquivos porque o seguinte comando retorna muitos resultados:

find . -iname "*.gz" | xargs zgrep "output" | less

Alguém sabe por que meu comando zgrep recursivo não está funcionando. Eu estou em uma caixa linux do RHEL

    
por Nosrettap 10.12.2013 / 21:24

4 respostas

3

Você está quase lá. Tente isto:

zgrep -R -H "foo" *.gz

EDITAR: Hmmmm .... intrigante!

De acordo com o meu zgrep, -R (recursivo) não é uma opção. Simplesmente não é suportado. Eu tenho um cheque para ver o que a página de manual do seu zgrep diz.

Uma alternativa, que depende de apenas um nível de subdiretórios, é fazer isso:

zcat */*.gz | grep <needle>

Mas sugiro que seu comando de busca seja provavelmente melhor!

    
por 10.12.2013 / 23:06
2

A maneira que costumo fazer é:

zgrep "foo" $(find -name "*.gz")

Se o comando retornar "Argument list too long", tente desta forma:

for I in $(find -name "*.gz"); do zgrep "foo" $I; done
    
por 20.02.2015 / 02:33
2

Você tem que instalar zutils. Isso substituirá o zgrep padrão e limitado em seu sistema por um sistema recursivo.

Em sistemas baseados no Debian, você executa apt-get install zutils , então você pode zgrep -rH myword . e usar a maioria dos outros parâmetros do grep que você conhece e adora.

    
por 07.09.2015 / 07:22
0

Use peneire - ele é super rápido .

sift -z foo

-z é para descompactar gzips, ele desce em subdiretórios por padrão. Mostra nomes de arquivos também por padrão (sua opção -H ).

PS. Graças à sua pergunta, descobri essa ferramenta hoje. Apenas battletested-lo, além da funcionalidade que você precisa, eu tenho uma aceleração de 5x em alguns logs de produção quando comparado a zgrep .

    
por 23.10.2017 / 17:02