Usei o script
programa para gravar uma sessão interativa:
$ script
$ echo<-<-<-<-printf "hello\n"
$ exit
A sequência <-
representa o caractere de retrocesso.
Quero o seguinte como saída:
$ printf "hello\n"
$ exit
Mas o resultado real contém todas as teclas individuais (olhando com cat --show-nonprinting
).
Tentei ler linha por linha com o read
comando. Ele edita os retrocessos, mas também remove o prompt de comando e parece que é convertido \n
em n
.
Estou procurando uma maneira de exibir o texto que o usuário estava vendo na tela (prompt de comando, entrada editada e saída de comando - as cores não importam).
Para referência, um exemplo de saída:
^[[?2004l^M^[[?2004h$ echo^H^[[K^H^[[K^H^[[K^H^[[Kprintf "hello\n"^M
^[[?2004l^Mhello^M
^[[?2004h$ exit^M
^[[?2004l^Mexit^M
Responder1
IIUC,ansi2txtfará exatamente o que você deseja:
$ ansi2txt typescript > ANSI2TXT
$ cat ANSI2TXT
$ printf "hello\n"
hello
$ exit
Script done on Wed 15 Apr 2020 07:48:55 PM CEST