Воспроизведение файла журнала экрана пошагово

Воспроизведение файла журнала экрана пошагово

Я выполнил несколько команд в gnu screen и использовал C-a Hкоманду для записи вывода в screenlog.0файл. Однако теперь я хочу просмотреть его. Существует множество последовательностей экранирования терминала, поэтому просто cat-ing покажет мне все сразу.

Я знаю, что в этом файле нет информации о времени, и это нормально. Но возможно ли как-то пошагово ответить на файл? По одному символу/последовательности Escape за раз? Есть ли какая-нибудь команда, которая возьмет такой файл и будет только "печатать" каждый символ/последовательность Escape по одному за раз, пока я нажимаю кнопки/позволяет мне сделать шаг вперед?

ОБНОВЛЯТЬ: Если я использую lessили more, я могу видеть файл и видеть вещи, но это показывает мне сырое содержимое, включая управляющие коды. Если я наполовину ввел команду и нажал tab, он показывает клавишу табуляции. Поэтому я не могу копировать/вставить

решение1

Вы можете использовать пейджер, например, lessили more:

less screenlog.0

Или

more screenlog.0

Не уверен, какие у вас коды выхода из терминала, но если они отображаются неправильно, используйте

less -R screenlog.0

решение2

Вот простой скрипт POC Bash для воспроизведения, screenlog.0при этом можно изменить скорость воспроизведения, нажав 0, 1, ... 9, где 0 означает полную скорость. Нажмите spaceдля паузы/возобновления.

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

Связанный контент