Как удалить все коды выхода ANSI/символы, отличные от ascii, из текстового файла (или: как заставить работать ANSIescape в Sublime)

Я пробовал черт возьми почти все команды sed, которые я мог придумать, кучу, которую я нашел здесь, ища подсказки, и несколько других случайных идей, и я просто не могу понять это.

В качестве фона я уже некоторое время использую этот скрипт для записи сеансов терминала на одной из моих рабочих станций. Это очень полезно, так как я склонен ломать что-то на этой конкретной рабочей станции, и полезно зайти и посмотреть, что сломалось или что нужно восстановить. Однако вывод абсолютно ужасен, когда я открываю его в Sublime (я покажу пример ниже).

Я также пробовал ANSIescape/SublimeANSI , чтобы исправить это, так как он должен помочь визуально улучшить такие проблемы, но это оставляет много случайных символов позади (я опубликую скриншот ниже)


Пример открытия записи терминала в Sublime из приведенного выше скрипта (обратите внимание: я заменил escape-символы из возвышенного их визуальным эквивалентом ASCII (т.е. я заменил не вставляемый <0x1b> фактическими символами, введенными с клавиатуры)):

      <0x1b>]0;me@me: /etc/xml<0x07><0x1b>[01;32mme@me<0x1b>[00m:<0x1b>[01;34m/etc/xml<0x1b>[00m$ ls -lah
total 68K
drwxr-xr-x   3 root root 4.0K May 27  2020 <0x1b>[0m<0x1b>[01;34m.<0x1b>[0m
drwxr-xr-x 197 root root  12K Feb 17 19:05 <0x1b>[01;34m..<0x1b>[0m
-rw-r--r--   1 root root 3.3K May 27  2020 catalog
-rw-r--r--   1 root root 3.2K May 27  2020 catalog.old
-rw-r--r--   1 root root  11K May 27  2020 docbook-xml.xml
-rw-r--r--   1 root root  10K May 27  2020 docbook-xml.xml.old
drwxr-xr-x   2 root root 4.0K Oct 15  2019 <0x1b>[01;34mresolver<0x1b>[0m
-rw-r--r--   1 root root 1.4K May 27  2020 sgml-data.xml
-rw-r--r--   1 root root 1.2K May 27  2020 sgml-data.xml.old
-rw-r--r--   1 root root  840 May 27  2020 xml-core.xml
-rw-r--r--   1 root root  673 May 27  2020 xml-core.xml.old
<0x1b>]0;me@me: /etc/xml<0x07><0x1b>[01;32mme@me<0x1b>[00m:<0x1b>[01;34m/etc/xml<0x1b>[00m$

Скриншот Sublime до применения ANSIescape (по ссылке выше):

[примечание: снимок экрана сделан на Mac после копирования файла — в Linux поведение такое же]

Скриншот Sublime до применения ANSIescape (по ссылке выше):

[примечание: снимок экрана сделан на Mac после копирования файла — в Linux поведение такое же]

Как видим, некоторые из <0x1b>а также <0x07>а также ]0;оставаться на месте в этом методе. Побеги становятся намного хуже, если файл огромен.


Есть ли у кого-нибудь достойные предложения по A: исправлению сценария, который я связал выше, чтобы он не был полностью искажен, или B: заставить ANSIescape работать для этого варианта использования, или C: удалить эти символы, прежде чем я попытаюсь просмотреть журналы?

0 ответов

Другие вопросы по тегам