Ich habe das script
Programm verwendet, um eine interaktive Sitzung aufzuzeichnen:
$ script
$ echo<-<-<-<-printf "hello\n"
$ exit
Die Sequenz <-
stellt das Backspace-Zeichen dar.
Ich möchte folgendes als Ausgabe:
$ printf "hello\n"
$ exit
Das tatsächliche Ergebnis enthält jedoch alle einzelnen Tastenanschläge (siehe cat --show-nonprinting
).
Ich habe versucht, mit dem Befehl Zeile für Zeile zu lesen read
. Dabei werden die Rücktasten entfernt, aber auch die Eingabeaufforderung wird entfernt und es scheint, als würde es \n
in konvertiert n
.
Ich suche nach einer Möglichkeit, den Text, den der Benutzer gesehen hat, auf dem Bildschirm anzuzeigen (Eingabeaufforderung, bearbeitete Eingabe und Befehlsausgabe – Farben spielen keine Rolle).
Als Referenz eine Beispielausgabe:
^[[?2004l^M^[[?2004h$ echo^H^[[K^H^[[K^H^[[K^H^[[Kprintf "hello\n"^M
^[[?2004l^Mhello^M
^[[?2004h$ exit^M
^[[?2004l^Mexit^M
Antwort1
IIUC,ansi2txtwird genau das tun, was Sie wollen:
$ ansi2txt typescript > ANSI2TXT
$ cat ANSI2TXT
$ printf "hello\n"
hello
$ exit
Script done on Wed 15 Apr 2020 07:48:55 PM CEST