Назад | Перейти на главную страницу

Как "не-ANSI-fy" журналы?

В последнее время в инструментах командной строки появилась тенденция использовать причудливые цвета ANSI в своих выводах журнала (например, NPM и множество инструментов на основе nodejs, rvm, docker и некоторые другие «современные» инструменты).

Это делает чтение на экране приятным (*), но не таким приятным, когда вы хотите направить вывод в файл журнала или через транспорт, который плохо обрабатывает ANSI, например, различные инструменты удаленного выполнения и решения для веб-мониторинга. У многих более зрелых инструментов, по крайней мере, хватило приличия определять, когда вывод не является телетайпом, и отключать цвет, но не с помощью этих новых "удобных для пользователя" интерфейсов командной строки, что оставляет мне попытку избавиться от цветов ANSI с помощью конвейера. вывод через еще один процесс.

Седание вывода через s/\x1B\[[0-9]*\w//g Кажется, работа выполнена, но есть ли более чистый подход, а затем просто скопировать вставку регулярных выражений во все мои сценарии?

(*) по крайней мере, пока инструмент не попытается отобразить ошибки темно-красным цветом на вашем темном фоне терминала.

"ansifilter -p" может быть вам полезен ...

Это в репозиториях Fedora; -p указывает простой вывод:

Name        : ansifilter
From repo   : updates
Summary     : ANSI terminal escape code converter
URL         : http://www.andre-simon.de/doku/ansifilter/ansifilter.php
License     : GPLv3+
Description : Ansifilter handles text files containing ANSI terminal escape codes.
            : The command sequences may be stripped or be interpreted to generate formatted
            : output (HTML, RTF, TeX, LaTeX, BBCode).