GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So bereinigen Sie die Ausgabe des Linux-Befehls „script“.

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 (die g 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 ]
  • \[.*?[a-zA-Z] bedeutet
    • Übereinstimmung mit einer Zeichenfolge beginnend mit [ dann machen Sie einen nicht gierigen .*? bis zum ersten Buchstaben
  • \].*?\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

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).


Linux
  1. So speichern Sie die Befehlsausgabe in einer Datei unter Linux

  2. So benennen Sie Dateien unter Linux um

  3. So verwenden Sie den Su-Befehl unter Linux

  4. Wie kann man feststellen, ob die Ausgabe eines Befehls oder Shell-Skripts Stdout oder Stderr ist?

  5. Wie liest man die IDLE-Spalte in der Ausgabe des Linux-Befehls „w“?

So entfernen Sie ein Verzeichnis in Linux

So verwenden Sie den Linux-nohup-Befehl

So aktivieren Sie den Zeitstempel in der Ausgabe des Linux-Verlaufsbefehls

So führen Sie einen Linux-Shell-Befehl / ein Skript im Hintergrund aus

So speichern Sie die Linux-Befehlsausgabe in einem Bild oder einer Textdatei

So speichern Sie einen Linux-Befehl als Variable im Shell-Skript