
Ich habe einige Befehle in GNU Screen ausgeführt und den C-a H
Befehl verwendet, um die Ausgabe in einer Datei aufzuzeichnen screenlog.0
. Jetzt möchte ich sie jedoch anzeigen. Es gibt jede Menge Terminal-Escape-Sequenzen, also cat
wird mir durch einfaches -ing alles auf einmal angezeigt.
Ich weiß, dass diese Datei keine Zeitangaben enthält, und das ist in Ordnung. Aber ist es möglich, die Datei irgendwie schrittweise zu beantworten? Ein Zeichen/eine Escape-Sequenz nach der anderen? Gibt es einen Befehl, der eine Datei wie diese nimmt und nur jedes Zeichen/jede Escape-Sequenz einzeln „druckt“, während ich Tasten drücke/es mir erlaubt, vorwärts zu gehen?
AKTUALISIEREN: Wenn ich less
oder benutze more
, kann ich die Datei sehen und Dinge sehen, aber das zeigt mir den Rohinhalt, einschließlich Steuercodes. Wenn ich einen Befehl halb eingegeben und gedrückt habe tab, wird die Tabulatortaste angezeigt. Ich kann also nicht kopieren/einfügen
Antwort1
Sie könnten einen Pager wie less
oder verwenden more
:
less screenlog.0
Oder
more screenlog.0
Ich bin nicht sicher, welche Terminal-Escape-Codes Sie haben, aber wenn sie nicht richtig angezeigt werden, verwenden Sie
less -R screenlog.0
Antwort2
Hier ist ein einfaches POC-Bash-Skript zum Wiedergeben. screenlog.0
Die Wiedergabegeschwindigkeit kann durch Drücken von 0, 1, ... geändert werden 9, wobei 0 die volle Geschwindigkeit bedeutet. Drücken Sie spacezum Anhalten/Fortsetzen.
exec 6< screenlog.0
sleep=2 # initial speed where 2 means 0.2s pauses between "lines"
while read -r line <&6 ; do
printf '%b\n' "$line"
read -s -N 1 -t .$sleep
case "$REPLY" in [0-9]) sleep="$REPLY";; " ") read -s -d " ";; esac
done