Você tem que limpar essas fugas enquanto as lê - faça o que o terminal faz e sobrescreva-as.
Isso emula a saída que você descreve com seq :
seq -s "
$(printf '3[A')" 10
Se for gravada em um terminal que interpreta essa saída, aparecerá apenas 10 . Mas, como você nota na pergunta, é realmente imprimir todos esses números um sobre o outro. No entanto, se eu filtrar sua saída com sed like:
seq -s "
$(printf '3[A')" 10 |
sed -e :n -e "\$!N;s/.*$(printf '3\[A')//;tn"
... ele realmente imprime apenas 10 porque sed continuamente lê em cada linha de entrada seguinte e s/// substitui tudo da cabeça do espaço padrão até a última ocorrência chave para cima escape. E cada vez que o faz com sucesso, ele volta ao :n label para t ry novamente.