Удаление escape-символов из экранного экрана GNU Screen.% N

Можно ли удалить последовательности ESC в выходном файле экрана GNU? Такие вещи, как цвета, вкладки и другие escape-символы, попадают в файлы журналов и становятся сложнее расшифровать.

Я пробовал Dr. Google & Co., а также читал руководство, но не смог найти что-нибудь подходящее …

Возможно, я что-то упустил?

Попробуйте этот кусок магии Perl:

perl -ne 's/\x1b[[()=][;?0-9]*[0-9A-Za-z]?//g;s/\r//g;s/\007//g;print' < screenlog.0 

Также попробуйте вариант -r или -R меньше.

 less -r screenlog.0 

Используйте ansifilter.

 ansifilter screenlog.txt > screenlog.txt.clean 

Я использую команду strings чтобы сделать экранный журнал доступным для чтения. В Debian это часть пакета binutils.

Как говорится в его справочной странице:

String – найти строки для печати в объекте или другом двоичном файле

После того, как вы захватите свой сеанс в файле screenlog.n, вы можете отправить файл на терминал, а затем использовать команду hardcopy экрана, чтобы выгрузить вывод cat в файл. Результат предоставит вам чистый результат, который не будет содержать escape-последовательности.

Кажется, что только «gotcha» удостоверился, что hardcopy захватывает eveyrthing в буфере прокрутки и что буфер прокрутки содержит только то, что вы хотите захватить.

 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 

Обратите внимание, что -h гарантирует, что вы захватите всю историю прокрутки, а не только то, что в непосредственном виде

Файл screenlog.n.cleaned теперь будет содержать печатную копию вывода cat и не будет содержать никаких управляющих последовательностей

Если вы являетесь пользователем screen тогда экранное печатное решение, предложенное Joel Verks, будет работать лучше всего – при условии, что у вас есть большая прокрутка, определенная в вашем .screenrc :

 defscrollback 10000 

То вы бы сделали:

  1. Отобразите файл screenlog :

     $ cat screenlog.<screen_window_num> 
  2. Используйте hardcopy -h (см. Экранную страницу руководства), чтобы сохранить текущее содержимое окна и его буфер hardcopy.# прокрутки в hardcopy.# Файл:

     <Escape key> (Ctrl-a by default) :hardcopy -h 
  • Установка прошивки с помощью samsung magc dc
  • Linux - защита от самих себя (корень)
  • Как использовать SSH для копирования файла на удаленный сервер под другим пользователем
  • Есть ли еще решение, обеспечивающее взаимодействие с двумя пользователями, двумя курсорами, одним монитором?
  • Kali linux iwlwifi-7265D.11-12.ucode
  • SSD-шифрование SandForce - безопасность и поддержка
  • Какую файловую систему использовать при использовании как Windows, так и Linux?
  • Как получить полный каталог в sftp?
  • Почему Ctrl + V не вставляется в Bash (оболочка Linux)?
  • Почему размер на диске настолько велик для одного файла?
  • Какой самый простой способ обнюхать данные трафика TCP в Linux?
  • Давайте будем гением компьютера.