grep saída do cdrecord

3

Eu gostaria de analisar a saída do cdrecord / wodim usando o grep. cdrecord -v gera linhas como

Track 01:   49 of   75 MB written (fifo 100%) [buf 100%]  10.2x.

O problema é que o cdrecord usa retornos de carro ( CR , \r ) para mostrar o progresso na mesma linha.

Eu tentei anexar tr '\r' '\n' à chamada do cdrecord, que geralmente funciona, mas a saída não será mostrada linha por linha. Em vez disso, grandes blocos de texto são analisados e exibidos:

cdrecord -v ... | tr '\r' '\n' | grep -i written

Isso se deve ao cdrecord, tr ou grep? Existe alguma maneira de forçar a descarga para obter a saída linha por linha?

Qualquer ajuda apreciada.

    
por mefiX 10.02.2016 / 14:06

1 resposta

3

A saída de tr é armazenada em buffer. Você pode usar stdbuf -o0 com tr para deixar o STDOUT sem buffer:

cdrecord -v ... | stdbuf -o0 tr '\r' '\n' | grep -i written
    
por 10.02.2016 / 14:51