Por um lado, com -O - , você está solicitando que wget grave os dados recebidos em stdout , o que faz sem buffer .
Por outro lado, e a menos que você o suprima com -q , wget grava informações de progresso em stderr .
Se você não redirecionar um dos fluxos (usando > some_file ), eles serão exibidos simultaneamente pelo terminal, e eles não se misturam bem, especialmente porque wget usa caracteres especiais para exibir a barra de status.
O que você espera é de wget para:
- Recupere os dados e armazene-os em algum lugar, enquanto exibe o status do progresso
- Depois de tudo ter sido recuperado, exiba os dados.
Você pode fazer isso com um arquivo temporário:
wget "http://localhost:9001" -O /tmp/some_file && cat /tmp/some_file
Você provavelmente também pode usar o buffer :
wget "http://localhost:9001" -O - | buffer -b 1 -s 100000