В последнее время у инструментов командной строки была тенденция использовать причудливые цвета ANSI в своих выходных данных журнала (например, NPM и множество инструментов на основе nodejs, rvm, docker и несколько других «современных» инструментов).
Это делает его удобным для чтения на экране (*), но не таким приятным, когда вы хотите направить вывод в файл журнала или через транспорт, который плохо обрабатывает ANSI, например, различные инструменты удаленного выполнения и веб-решения для мониторинга. Многие более зрелые инструменты, по крайней мере, были приличны, чтобы обнаруживать, когда вывод не TTY, и отключать цвет, но не с этими новыми растрепанными «дружественными» CLI - что оставляет мне попытку избавиться от цветов ANSI с помощью конвейера. вывод через еще один процесс.
Обработка вывода, s/\x1B\[[0-9]*\w//g
похоже, делает свою работу, но есть ли более чистый подход, чем просто копирование вставки регулярных выражений во все мои сценарии?
(*) по крайней мере, пока инструмент не попытается отобразить ошибки темно-красным на вашем темном фоне терминала.
is there a cleaner approach then just copy pasting regular expressions into all of my scripts?
Сохранить свой фильтр очистки в файл с именем '/ usr / local / bin / stripttycolor.sh` или что-то? Таким образом, вы ограничиваете регулярное выражение одним местоположением?--no-color
флагом. Многие другие команды также имеют похожие флаги.bower
.Ответы:
"ansifilter -p" может быть полезен для вас ...
Это в репозиториях Fedora; -p указывает простой вывод:
источник