bzip2
imprime essas informações para stderr. Isso evita que mensagens de erro se misturem a dados descompactados quando uma delas é descompactada para stdout, como ocorre com bzip2 -dc
ou bzcat
. Você precisa enviar stderr para awk.
Meu bzip2 produz este formato
$ bzip2 index.html -v
index.html: 1.444:1, 5.542 bits/byte, 30.73% saved, 179 in, 124 out.
Para redirecionar o stderr para stdout e usar o awk para selecionar o número de compressão:
$ bzip2 index.html -v 2>&1 | awk '{print $5}'
30.73%
No shell, 0
é padrão, 1
é padrão e 2
é erro padrão. 2<&1
diz ao shell para receber o erro padrão ( 2
) e enviá-lo para a saída padrão ( 1
).