Есть ли команда, которую можно использовать для простого выделения (цветом, жирным текстом или перевернутым задним / передним планом) определенных строк в stdin при передаче всей строки в stdout? Я думаю о его создании , но я бы предпочел просто использовать его, если он уже существует. Некоторые желательные особенности:
- Отдельные строки выделения подсвечиваются по-разному, автоматически. Например, первая строка будет выделена красным, вторая зеленым, третья синим без ручной настройки .
- Обнаруживает поддержку цвета и возвращается к жирному / инвертированному / другим методам выделения, где они доступны.
- Разрешить сопоставление регулярных выражений и буквенных строк.
- Предпочтительно делает что-то умное, если совпадения совпадают, такие как «foobar» и «barbar».
- Ничего не изменяется между стандартным вводом и стандартным выводом, кроме добавления цветовых кодов.
Ответы:
Может быть , универсальный колоризатор Радована Гарабика (grc) ? Он ожидает файл конфигурации в качестве аргумента и работает с регулярными выражениями. Так что не совсем без конфигурации, но вы можете использовать процесс process substitution (
<(list)
), так что, безусловно, без ручной настройки :-)источник
grc
имеет вспомогательный скрипт:grcat
. Вот пример окрашивания всех заглавных букв в красный. Шаг 1: Настройте файл конфигурации:printf "regexp=[A-Z]\ncolours=red\n" > ~/.grc/red-caps
Шаг 2; Используйте его:echo Hello World | grcat red-caps
... Страница man указывает 3 каталога конфигурации, которые она ищет, и затем предлагает (?), Что файл конфигурации может быть абсолютным путем, но этот последний метод поиска файла конфигурации работает только с относительными путями для меня (grc версия 1.3)Sed на помощь!
Вы можете улучшить это (как это действительно нужно), но это работает довольно хорошо.
Для простоты, hilight принимает пару аргументов (сначала совпадение, затем цвет). В этом сценарии атрибут всегда выделен жирным шрифтом.
Прочтите man console_codes (Graphic Rendition), чтобы увидеть цветную защиту, или попробуйте это
У этого есть важные недостатки, поскольку использование этого работает:
но это совсем не
потому что [: digit:] находит числа в escape-последовательности предыдущих зарешений.
Что-то типа:
всегда будет работать как исключено.
Используя команду времени, я нашел это увеличение в четыре раза за прошедшее время, что не слишком много.
Вы можете заменить команду sed на любой другой парсер, который вам нравится или соответствует вашим потребностям (awk и т. Д.)
источник
Можно также использовать egrep с шаблоном, который соответствует каждой строке непечатаемого символа, например:
источник
клид работает отлично. Я использую его на RHEL 6.2, из репозитория EPEL
источник
Если ваша версия
grep
поставляется с окраской, то вы можете использовать регулярное выражение, чтобы grep выделил текст, а также соответствовал каждой строке, чтобы ничего не исключалось. Следующее должно сделать трюк:источник
Как вы упомянули в ссылке,
grep --color=always
работает только для одного шаблона. Тем не менее, я не верю, что такой инструмент существует.источник
Я использую http://em.readthedocs.org/ . Простота установки на различные платформы благодаря Python. Просто и отлично работает.
источник
em
, пожалуйста, перефразируйте ваш ответ, чтобы было ясно, что вы не пользователь, а автор предлагаемого инструмента.