У меня есть команда, которая производит вывод в цвете, и я хотел бы передать его в файл с вычеркнутыми кодами цвета. Есть ли команда, которая работает как, cat
кроме того, что она удаляет цветовые коды? Я планирую сделать что-то вроде этого:
$ command-that-produces-colored-output | stripcolorcodes > outfile
isatty(stdin)
перед этим. Хотите поделиться, что это за программа?cat
- быстрый тест, который я провел,grep --color=auto myusername /etc/passwd
дает мне мое имя пользователя красным с белым текстом в другом месте.grep --color=auto myusername /etc/passwd | cat
дает мне простой белый текстgrep --color=auto
позволяет избежать цветного вывода, когда стандартный вывод не является терминалом. Я говорю о команде, которая безоговорочно выводит цветовые коды. (Как указывает Алекс выше, такое поведение, возможно, является ошибкой, но иногда нам нужно работать с несовершенным программным обеспечением, которое мы не можем легко исправить самостоятельно, и вот о чем этот вопрос.)Ответы:
Можно подумать, что для этого найдется полезность, но я не смог ее найти. Тем не менее, этот Perl однострочный должен сделать свое дело:
Пример:
Или, если вы хотите скрипт, вы можете сохранить как
stripcolorcodes
:Если вы хотите удалить только цветовые коды и оставить любые другие коды ANSI (например, перемещение курсора), используйте
вместо замены, которую я использовал выше (которая удаляет все управляющие коды ANSI).
источник
Term::ANSIColor
. Подтвердите ваши источники, пожалуйста!Удалить цветовые коды (специальные символы) с помощью GNU sed
Или же
Обрезать escape-последовательности ANSI в Python
Установить пакет colorama python (
pip install colorama
). Положить вstripcolorcodes
:Беги
chmod +x stripcolorcodes
.источник
sed
впечатляет :)Если вы можете установить модуль Term :: ANSIColor , этот скрипт на Perl работает:
источник
perl -mTerm::ANSIColor=colorstrip -n -e 'print colorstrip $_'
Если ваша система имеет доступ к NodeJS вы можете установить следующий пакет Node,
strip-ansi-cli
.Затем вы можете запустить свою команду следующим образом:
источник
Эта команда sed сделала это для меня:
Пример:
источник
sed
.Вы можете использовать AC для этого. Это должно быть быстрее, чем все перечисленное выше (хотя
perl
иsed
должно быть приличным). Вот пример:Отказ от ответственности: функциональность цветовой фильтрации была написана мной.
источник
ac
Программа , кажется, здесь: hub.darcs.net/vmchale/fastcat... и при необходимости,
(dnf, ...) install ansifilter
источник