Experimente este pedaço de magia Perl:
perl -ne 's/\x1b[[()=][;?0-9]*[0-9A-Za-z]?//g;s/\r//g;s/perl -ne 's/\x1b[[()=][;?0-9]*[0-9A-Za-z]?//g;s/\r//g;s/%pre%7//g;print' < screenlog.0
7//g;print' < screenlog.0
É possível remover as seqüências ESC no arquivo de saída do GNU Screen? Coisas como cores, guias e outros caracteres de escape entram nos arquivos de log e se tornam difíceis de decifrar.
Eu tentei o Dr. Google & Co. bem como ler o manual, mas não conseguiu encontrar nada adequado ...
Talvez eu tenha esquecido alguma coisa?
Tente também a opção -r ou -R de menos.
less -r screenlog.0
Use ansifilter.
ansifilter screenlog.txt > screenlog.txt.clean
Depois de capturar sua sessão em screenlog.n, você pode catar o arquivo para o terminal e, em seguida, usar o comando de cópia impressa da tela para despejar a saída do gato em um arquivo. O resultado fornecerá uma saída limpa que não possui nenhuma sequência de escape.
A única 'pegadinha' parece ser certificar-se de que a cópia impressa captura o eveyrthing no buffer de rolagem e que o buffer de rolagem contém apenas o que você deseja capturar.
1. $ screen
2. $ cd /path/to/screenlog.n directory/
3. $ wc -l screenlog.n
4. $ screen -X scrollback 245 # 245 is the number of lines found from your wc command + 5
5. $ cat screenlog.n
6. $ screen -X hardcopy -h screenlog.n.cleaned
Observe que -h garante que você capture todo o histórico de rolagem e não apenas o que está na visualização imediata
O arquivo screenlog.n.cleaned agora conterá uma cópia impressa da saída do cat e não incluirá nenhuma sequência de escape
Eu uso o comando strings
para tornar um log de tela legível. Sob o Debian faz parte do pacote binutils.
Como sua página man diz:
strings - find the printable strings in a object, or other binary, file
Se você for o usuário screen
, a solução tela impressa sugerida por Joel
A postagem de Verks funcionará melhor - supondo que você tenha um grande pergaminho
definido no seu .screenrc
:
defscrollback 10000
você faria:
Exiba seu arquivo screenlog
:
$ cat screenlog.<screen_window_num>
Use hardcopy -h
(consulte a página de manual da tela) para salvar o conteúdo da janela atual
e seu buffer de rolagem no arquivo hardcopy.#
:
<Escape key> (Ctrl-a by default)
:hardcopy -h
Tags gnu-screen linux terminal