Como ter arquivos zpaq extraídos para stdout

0

Eu tenho alguns arquivos de log compactados com ZPAQ que eu não quero extrair para o disco toda vez que eu preciso ir grep-ing para eventos. Gostaria de extat-lo para stdout para que eu possa manipular a saída da mesma maneira que arquivos compactados GZ com gzcat:

# gzcat logfile.gz | grep foobarEVENT

# zpaq l logfile.zpaq 
zpaq v6.42 journaling archiver, compiled Nov 20 2013
Reading archive logfile.zpaq

 Ver  Date      Time (UT) Attr           Size Ratio  File
----- ---------- -------- ------ ------------ ------ -------
>   1                              3873434570 0.0359 logfile
1 of 1 files shown. 3873434570 -> 139125985

Ver Last frag Date      Time (UT) Files Deleted   Original MB  Compressed MB
---- -------- ---------- -------- ------ ------ -------------- --------------
   1        1                          1      0    3873.434670     139.125985
0.529 seconds
    
por Ryan Goltry 13.06.2014 / 18:24

1 resposta

0

A maneira que eu era capaz de passar arquivos zpaq não compactados através do stdout típico era fazer um pipe nomeado fifo e descomprimir aquele fifo em um processo e depois ler o fifo em outro processo.

Por exemplo:

$ mkfifo data_logfile
$ zpaq x logfile -force -to data_ &
$ grep searchTeXt data_logfile > grep_results.txt
    
por 08.10.2014 / 22:43