
私は gnu screen でいくつかのコマンドを実行し、C-a H
出力をscreenlog.0
ファイルに記録するコマンドを使用しました。しかし、今はそれを表示したいのです。ターミナル エスケープ シーケンスはたくさんあるので、cat
- するだけですべてを一度に表示されます。
このファイルにはタイミング情報がないことはわかっていますが、それは問題ありません。しかし、何らかの方法でファイルを段階的に返信することは可能ですか? 一度に 1 つの文字/エスケープ シーケンスですか? このようなファイルを受け取り、ボタンを押している間、または先に進むことができる間、一度に 1 つの文字/エスケープ シーケンスのみを「印刷」するコマンドはありますか?
アップデートless
:または を使用するとmore
、ファイルを表示して内容を確認できますが、制御コードを含む生の内容が表示されます。コマンドを半分入力して を押すとtab、タブキーが表示されます。そのため、コピー/貼り付けができません。
答え1
less
または次のようなページャーを使うこともできますmore
:
less screenlog.0
または
more screenlog.0
端末のエスケープコードが何なのかわかりませんが、正しく表示されない場合は、
less -R screenlog.0
答え2
以下は、再生するための簡単な POC Bash スクリプトです。、、...screenlog.0
を押すことで再生速度を変更できます。0 は最高速度を意味します。 を押すと一時停止/再開します。019space
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