Intereting Posts

Удаление непечатаемых символов из журналов ожидания?

Как я могу либо удалить следующие последовательности символов из моих файлов? ^[[64;8H , ^[[?25h , ^[[1;64r т. Д. Или избегать добавления их в первую очередь?

Задний план:

Я использую набор ожидающих скриптов для определенных задач.

Файлы вывода, которые я собираю, часто содержат указанные выше типы символов (как показано в emacs / vi / cat -v). Я пробовал несколько команд tr, таких как следующее, но только делает видимым [64; 8H и т. Д.

 tr -dc '[:print:]\n' < input 

РЕДАКТИРОВАТЬ:

Результаты выше на проблемной линии

 [1;64r[64;1H[64;1H[2K[64;1H[?25h[64;1H[64;..... 

Вы были близки. Вы хотите

 tr -dc '[:print:]\n' <input 

На странице управления tr(1) :

-c, -C, –complement
используйте дополнение SET1

Обновить

Если вы хотите также удалить escape-последовательности, вы можете использовать следующий фрагмент sed :

 sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" 

Это взято из вопроса serverfault под названием In CentOS 4.4, как я могу удалить escape-последовательности из текстового файла?

После некоторых экспериментов (я использую раковину, которая окрашивает все):

 perl -pe ' s/\033\\\\\[(\d+;)*\d*[[:alpha:]]//g; s/\033\\\\\]0;//g; s/\x7//g; s/\033\(B//g; ' expect.log - perl -pe ' s/\033\\\\\[(\d+;)*\d*[[:alpha:]]//g; s/\033\\\\\]0;//g; s/\x7//g; s/\033\(B//g; ' expect.log