Wenn Sie die Datei anzeigen möchten, können Sie die Ausgabe über col -bp
senden; dies interpretiert die Steuerzeichen. Dann können Sie, wenn Sie möchten, weniger durchleiten.
col -bp typescript | less -R
Auf einigen Systemen col
würde kein Dateinamenargument akzeptieren, verwenden Sie stattdessen diese Syntax:
col -bp <typescript | less -R
cat typescript | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > typescript-processed
Hier ist eine Interpretation der Zeichenfolgeneingabe in perl
:
s/pattern//g
bedeutet, eine Substitution im Ganzen vorzunehmen (dieg
Option bedeutet, das Ganze zu tun, anstatt beim ersten Ersatz anzuhalten) Eingabezeichenfolge
Hier ist eine Interpretation des Regex-Musters:
\e
dem speziellen "escape"-Steuerzeichen (ASCII 0x1A) entsprechen(
und)
sind Anfang und Ende einer Gruppe|
bedeutet, dass die Gruppe mit einem von N Mustern übereinstimmen kann. wobei die N Muster- sind
[^\[\]]
oder\[.*?[a-zA-Z]
oder\].*?\a
[^\[\]]
bedeutet- Übereinstimmung mit einem Satz von NOT-Zeichen, wobei die Not-Zeichen
[
sind und]
- Übereinstimmung mit einem Satz von NOT-Zeichen, wobei die Not-Zeichen
\[.*?[a-zA-Z]
bedeutet- Übereinstimmung mit einer Zeichenfolge beginnend mit
[
dann machen Sie einen nicht gierigen.*?
bis zum ersten Buchstaben
- Übereinstimmung mit einer Zeichenfolge beginnend mit
\].*?\a
bedeutet- Übereinstimmung mit einer Zeichenfolge, die mit
]
beginnt dann machen Sie einen nicht gierigen.*?
bis Sie auf das spezielle Steuerzeichen "das Alarmzeichen (Glocke)"
treffen
- Übereinstimmung mit einer Zeichenfolge, die mit
Für eine große Menge script
Ausgabe würde ich ein Perl-Skript iterativ zusammenhacken. Andernfalls mit einem guten Editor manuell bearbeiten.
Es ist unwahrscheinlich, dass es eine bestehende automatisierte Methode zum Entfernen von Steuerzeichen aus script
gibt auf eine Weise ausgeben, die das wiedergibt, was zu bestimmten wichtigen Zeitpunkten auf dem Bildschirm angezeigt wurde (z. B. wenn der Host darauf zuerst gewartet hat Zeichen einer Benutzereingabe).
Beispielsweise kann der Bildschirm bis auf Andrew $
leer sein , wenn Sie dann rm /*
eingegeben haben und zwölfmal die Rücktaste gedrückt haben (viel öfter als nötig), was am Ende auf dem Bildschirm angezeigt wird, hängt davon ab, welche Shell ausgeführt wurde, was Ihr aktueller stty
ist Einstellungen sind (die Sie möglicherweise während einer Sitzung ändern) und wahrscheinlich auch einige andere Faktoren.
Das Obige gilt für alle automatisierten Verfahren zur kontinuierlichen Erfassung von Eingaben und Ausgaben. Die Hauptalternative besteht darin, "Screenshots" zu machen oder den Bildschirm zu geeigneten Zeiten während der Sitzung auszuschneiden und einzufügen (was ich für Benutzerhandbücher, Notizen für ein Tagesprotokoll usw. mache).