Sem conhecer os componentes internos dos vários aplicativos, você não pode dizer quais caracteres foram ecoados pelo driver do terminal (em nome de um aplicativo) e quais foram emitidos por um determinado aplicativo.
Eu uso script
para capturar a saída para aplicativos linha de comando como seu exemplo e, em seguida, uso um script para filtrar as seqüências de escape (veja por exemplo Posso programaticamente “gravar” códigos de controle ANSI em um arquivo usando utilitários unix? ).
Isso não funcionaria tão bem para aplicativos de tela inteira, como um editor (porque não pode mostrar claramente o que acontece quando o cursor se move pela tela, atualizando o texto). Para isso, é (geralmente) bom o suficiente para reproduzir a sessão em câmera lenta (por exemplo, slowcat
).