tradutor de código ANSI

6

Existe alguma ferramenta que traduza texto com código ANSI para saída de texto? tput nomes de títulos ou similares?

O motivo da consulta é que eu gostaria de usar script ou algo semelhante e visualizar o arquivo resultante sem ter que decifrar sequências ANSI. Eu conheço alguns, mas não todos, e uma saída textual seria mais fácil de ler.

Na maioria dos casos, posso ver o código fonte do script ou programa que produz o texto ANSI, mas seria bom se houvesse uma ferramenta "debug".

O melhor seria provavelmente os nomes das variáveis C ? , ou seja:

^[[K    ->   <clr_eol>

Saiba que posso escrever um script para ele ... por exemplo:

sed 's/$/<newline>/' rec001.txt | \
sed 's/\x07/\n<bell>/g' | \
sed 's/\x1b\[K/\n<clr_eol>/g' | \
sed 's/\x1b\[?12l\x1b\[?25h/\n<cursor_normal>/g' | \
sed 's/\x1b\[\([0-9]\+\);\([0-9]\+\)H/\n<cursor_position(, )>/g' | \
sed 's/\x1b\[?1049h/\n<enter_ca_mode>/g' | \
sed 's/\x1b\[?25l/\n<cursor_invisible>/g' | \
sed 's/\x0d/<CR>/g' | \
...

que faz parte de um teste rápido que fiz em uma gravação Irssi .

Mas imaginando se existe alguma ferramenta existente para o trabalho.

Como nota lateral, temos aha , adaptador HTML Ansi , que converte ANSI em HTML. Mas esse não é o adaptador que estou procurando.

por user367890 26.06.2016 / 02:27

1 resposta

6

Alguém pode sugerir um programa. Não é um problema trivial fazer bem :

  • "Sequências ANSI" são padronizadas no ECMA-48,
  • alguns dos seus exemplos (como a aparência do cursor e enter_ca_mode ) não estão no padrão,
  • alguns, como o código enter_ca_mode 1049 , têm variações ( \E7\E[?47h ). Se um programa depende de uma descrição do terminal, apenas uma das variações será reconhecida,
  • algumas das sequências são parametrizadas, o que significa que um programa precisa ter as regras embutidas ou capaz de transformar recursos de terminal como \E[%i%p1%d;%p2%dH em uma expressão regular que pode ser comparada com as entradas.

    li>

Dado tudo isso, se alguém sugerir um programa, é mais provável que ele não resolva esses aspectos, mas simplesmente seja um emulador de terminal sem a exibição.

    
por 26.06.2016 / 02:51