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
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.