Supondo que isso seja feito usando \r
, que retorna o cursor para o início da linha atual sem passar para a próxima linha, e que o programa em questão está enviando sua saída para sua saída padrão, convertendo todos os \r
caracteres na saída do programa para \n
produzirá o resultado desejado:
yourprogram | tr '\r' '\n' > logfile
Veja a diferença entre
printf "Hello\rworld\n"
e
printf "Hello\rworld\n" | tr '\r' '\n'
Note que sem isso, redirecionando para um arquivo de log irá armazenar toda a saída no arquivo; você poderá visualizá-lo visualizando o arquivo usando less
em vez de cat
. ( less
mostrará \r
como ^M
, sem sobrescrever a linha anterior.)
Se o programa estiver escrevendo diretamente para o terminal, isso não ajudará. Nesse caso, você precisará usar um programa capaz de capturar toda a saída do terminal também; Um exemplo é script
:
script -c yourprogram logfile
iniciará o programa e capturará toda a sua saída para logfile
. Você precisará processar os caracteres especiais no arquivo de log para entender - less
irá ajudá-lo (ou qualquer editor razoável).