Как "un-ANSI-фы" журналы?
В последнее время у инструментов командной строки была тенденция использовать причудливые цвета ANSI в своих выходных данных журнала (например, NPM и множество инструментов на основе nodejs, rvm, docker и несколько других "современных" инструментов).
Это позволяет читать на экране (*), но не так приятно, когда вы хотите направить вывод в файл журнала или через транспорт, который плохо обрабатывает ANSI, например, различные инструменты удаленного выполнения и веб-решения для мониторинга. Многие более зрелые инструменты, по крайней мере, были приличны, чтобы обнаруживать, когда вывод не TTY и отключать цвет, но не с этими новыми растрепанными "дружественными" CLI - что оставляет мне попытку избавиться от цветов ANSI с помощью конвейера вывод через еще один процесс.
Seding выход через s/\x1B\[[0-9]*\w//g
Кажется, что работа сделана, но есть ли более чистый подход, чем просто копировать вставленные регулярные выражения во все мои сценарии?
(*) по крайней мере, пока инструмент не попытается отобразить ошибки темно-красным на вашем темном фоне терминала.
1 ответ
"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).