Is it possible to remove the ESC sequences in GNU Screen's output file? Things such as colours, tabs and other escape characters make their way into the log files and become difficult to decipher.

I've tried Dr. Google & Co. as well as reading the manual, but haven't been able to find anything suitable...

Perhaps I've overlooked something?

link|improve this question
feedback

3 Answers

up vote 4 down vote accepted

Try this piece of Perl magic:

perl -ne 's/\x1b[[()=][;?0-9]*[0-9A-Za-z]?//g;s/\r//g;s/\007//g;print' < screenlog.0
link|improve this answer
Thanks for that - that's AWESOME! It still has the ^G and ^M characters in there, but its a lot more readable... – sHz Jan 22 '10 at 12:55
1  
Added that to the expression. – whitequark Jan 22 '10 at 13:10
I wonder how many ASCII faces are in that one liner. I stopped counting around 20. – John T Feb 1 '10 at 5:19
1  
Of course I can write another one-liner that will count them. – whitequark Feb 1 '10 at 5:30
feedback

Once you capture your session in screenlog.n , you can cat the file to the terminal and then use screen's hardcopy command to dump the cat's output to a file . The result will provide you with clean output that does not have any escape sequences.

The only 'gotcha' seems to be to make sure that hardcopy captures eveyrthing in the scrollback buffer and that the scrollback buffer contains only what you want to capture.

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 

Note that -h ensures that you capture the entire scrollback history and not just whats in immediate view

The screenlog.n.cleaned file will now contain a hardcopy of the cat output and won't include any escape sequences

link|improve this answer
feedback

I use the strings command to make a screen log readable. Under Debian it is part of the binutils package.

As its man page says:

strings - find the printable strings in a object, or other binary, file

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.