增量重播屏幕日志文件

增量重播屏幕日志文件

我在 gnu screen 中运行了一些命令,并使用该C-a H命令将输出记录到screenlog.0文件中。不过现在我想看看。有大量的终端转义序列,因此只需cat-ing 即可立即显示所有内容。

我知道这个文件中没有时间信息,这很好。但是否有可能以某种方式增量地回复文件?一次一个字符/转义序列?是否有任何命令可以获取这样的文件,并且在我按下按钮/允许我前进时一次只“打印”一个字符/转义序列?

更新:如果我使用lessmore,我可以查看文件并查看内容,但这会显示原始内容,包括控制代码。如果我输入了一半命令并按下tab,它会显示 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

相关内容