我在 gnu screen 中运行了一些命令,并使用该C-a H
命令将输出记录到screenlog.0
文件中。不过现在我想看看。有大量的终端转义序列,因此只需cat
-ing 即可立即显示所有内容。
我知道这个文件中没有时间信息,这很好。但是否有可能以某种方式增量地回复文件?一次一个字符/转义序列?是否有任何命令可以获取这样的文件,并且在我按下按钮/允许我前进时一次只“打印”一个字符/转义序列?
更新:如果我使用less
或more
,我可以查看文件并查看内容,但这会显示原始内容,包括控制代码。如果我输入了一半命令并按下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