bzgrep -H padrão arquivo.bz2 não fornece nome de arquivo, mas “entrada padrão”

1

Eu pensei que -H sempre deveria imprimir o nome do arquivo antes da linha correspondente. isto é verdade para o grep, mas não para o bzgrep:

$ grep -H pattern file1 
file1: data pattern data

$ bzgrep -H pattern file2.bz2 
(standard input): data pattern data

Existe uma solução para isso? Eu preciso fazer centenas de arquivos bz2, não consigo descompactá-los antes da pesquisa ...

    
por Washuu 20.03.2014 / 12:28

2 respostas

0

Existe (para meu conhecimento) nenhuma versão de grep que suporta internamente o gzip / bzip2. Em vez disso, existem scripts de shell, como bzgrep e zgrep , que essencialmente chamam os binários gunzip / bunzip2 e alimentam a saída no grep via stdin. Portanto, o sinalizador -H não pode funcionar como esperado quando você não invoca o grep diretamente.

    
por 20.03.2014 / 18:57
0

Eu olhei para bzgrep. Na verdade, foi um arquivo de script bash. A modificação do script para consertar o problema foi bem simples, então eu me perguntei se alguém o corrigiu em uma versão mais nova do bzgrep. Eu descobri, isso é corrigido no Ubuntu e no Debian, mas não no CentOS.

Se alguém se deparar com o mesmo problema - faça o login em um sistema mais novo e copie o shell script do bzgrep. É a solução mais fácil.

    
por 24.03.2014 / 20:36