Você precisa gerar o indicador de progresso para stderr para que ele não acabe nos dados compactados com gzip. Eu usaria perl
para isso:
<chained sed commands> | perl -pe 'print STDERR "$1\r" if /^(\d+)/' | gzip -c > outputfile.gz
perl -p
significa criar um loop automático que imprime cada linha de entrada, possivelmente modificada. O -e
define a expressão para executar dentro do loop.
A expressão corresponde a um número no início da linha e, se encontrado, imprime isso para stderr com um retorno de carro à direita. A entrada é passada para a saída a ser gzipada.
Uma variação que pode funcionar melhor visualmente é substituir o valor da instrução de impressão por "\r$1 "\
. Isso deixa o cursor no final, os espaços extras sobrescrevem quaisquer dígitos das linhas anteriores, caso o ID atual seja menor que o ID anterior.