Light maneira de ler grandes arquivos compactados bz2

0
bzcat *.log | sed # etc

funciona, mas como os arquivos são poucos gb grandes, leva tempo para ser concluído.

Existe uma maneira de fazer isso de maneira mais rápida?

Eu tentei

echo *.log | xargs -P 4 bzcat | sed # etc

mas as linhas se misturam.

    
por oldergod 18.09.2014 / 09:18

1 resposta

1

Para aproveitar vários núcleos de CPU (além da execução múltipla de bzip2 instances e de encontrar os problemas que você percebeu), você pode usar uma implementação multi-thread da compactação bzip2. Parece haver alguns deles, infelizmente o padrão bzip2 (e o bzcat que vem com ele) não é um deles.

Aqui estão links para alguns deles, alguns podem até vir com a sua distribuição

Para lbzip2 , há também um lbzcat , mas para pbzip2 , mpibzip e qualquer outra implementação que tente compatibilidade de linha de comando com bzip2 , o seguinte deve funcionar:

pbzip2 -d -c *.log | sed # etc
    
por 18.09.2014 / 09:51

Tags