Use pv(1)
no modo de linha:
COMMAND | pv --line-mode --size 1000 >> output.txt
ou menor
COMMAND | pv -ls 1000 >> output.txt
-s
/ --size
define o número de unidades de saída esperadas (bytes por padrão ou linhas no modo de linha).
Se você deseja capturar a saída e exibir o progresso de vários comandos em execução em paralelo, você pode fazer isso com uma instrução composta:
{ COMMAND1 & COMMAND2 & COMMAND3; } | pv -ls 1000 >> output.txt
Nesse caso, você precisa especificar o número de unidades de saída esperadas de todos os comandos no total .
Demonstração
for i in {1..200}; do sleep 0.1; echo "$i"; done | pv -ls 200 > /dev/null