Как "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).
Другие вопросы по тегам