Utilicé el script
programa para grabar una sesión interactiva:
$ script
$ echo<-<-<-<-printf "hello\n"
$ exit
La secuencia <-
representa el carácter de retroceso.
Quiero lo siguiente como resultado:
$ printf "hello\n"
$ exit
Pero el resultado real contiene todas las pulsaciones de teclas individuales (mirando con cat --show-nonprinting
).
Intenté leer línea por línea con el read
comando. Edita los retrocesos, pero también elimina el símbolo del sistema y parece que se convierte \n
en n
.
Estoy buscando una manera de tener el texto que el usuario estaba viendo en la pantalla (símbolo del sistema, entrada editada y salida del comando; los colores no importan).
Como referencia, un resultado de muestra:
^[[?2004l^M^[[?2004h$ echo^H^[[K^H^[[K^H^[[K^H^[[Kprintf "hello\n"^M
^[[?2004l^Mhello^M
^[[?2004h$ exit^M
^[[?2004l^Mexit^M
Respuesta1
IIUC,ansi2txtHará exactamente lo que quieras:
$ ansi2txt typescript > ANSI2TXT
$ cat ANSI2TXT
$ printf "hello\n"
hello
$ exit
Script done on Wed 15 Apr 2020 07:48:55 PM CEST