В последнее время в инструментах командной строки появилась тенденция использовать причудливые цвета 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).