
Executei alguns comandos na tela gnu e usei o C-a H
comando para gravar a saída em um screenlog.0
arquivo. No entanto, agora quero vê-lo. Existem muitas sequências de escape de terminal, então apenas cat
- isso me mostrará tudo de uma vez.
Eu sei que não há informações de tempo neste arquivo, e tudo bem. Mas é possível responder de forma incremental ao arquivo? Uma sequência de caracteres/escape por vez? Existe algum comando que pegue um arquivo como este e apenas "imprima" cada sequência de caracteres/escape, um de cada vez, enquanto eu pressiono botões/permite-me avançar?
ATUALIZAR: Se eu usar less
ou more
, posso ver o arquivo e ver coisas, mas isso me mostra o conteúdo bruto, incluindo códigos de controle. Se eu inseri um comando pela metade e pressionei tab, ele mostra a tecla tab. Então não consigo copiar/colar
Responder1
Você pode usar um pager como less
ou more
:
less screenlog.0
Ou
more screenlog.0
Não tenho certeza de quais códigos de escape de terminal você possui, mas se eles não forem exibidos corretamente, use
less -R screenlog.0
Responder2
Aqui está um script POC Bash simples para reproduzir screenlog.0
enquanto é possível alterar a velocidade de reprodução pressionando 0, 1, ... 9onde 0 significa velocidade total. Pressione spacepara pausar/retomar.
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