화면 로그 파일을 증분적으로 재생

화면 로그 파일을 증분적으로 재생

gnu 화면에서 일부 명령을 실행하고 해당 C-a H명령을 사용하여 출력을 파일에 기록했습니다 screenlog.0. 그러나 이제는 그것을 보고 싶습니다. 터미널 이스케이프 시퀀스가 ​​많기 때문에 cat-ing만 하면 모든 것이 한꺼번에 표시됩니다.

이 파일에는 타이밍 정보가 없다는 것을 알고 있으며 괜찮습니다. 그러나 파일에 점진적으로 응답하는 것이 가능합니까? 한 번에 하나의 문자/이스케이프 시퀀스? 이와 같은 파일을 가져와 버튼을 누르거나 앞으로 나아갈 수 있도록 허용하는 동안 각 문자/이스케이프 시퀀스를 한 번에 하나씩 "인쇄"하는 명령이 있습니까?

업데이트less: 또는 를 사용하면 more파일도 볼 수 있지만 제어 코드를 포함한 원시 내용만 표시됩니다. 명령을 반만 입력하고 를 누르면 tab탭 키가 표시됩니다. 그래서 복사/붙여넣기가 안되네요

답변1

less또는 다음과 같은 호출기를 사용할 수 있습니다 more.

less screenlog.0

또는

more screenlog.0

어떤 터미널 이스케이프 코드가 있는지 확실하지 않지만 올바르게 표시되지 않으면 다음을 사용하십시오.

less -R screenlog.0

답변2

다음은 , , ...를 screenlog.0눌러 재생 속도를 변경할 수 있는 동안 재생하는 간단한 POC Bash 스크립트입니다. 여기서 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

관련 정보