7

Я уже знаю, что могу раскрасить вывод с помощью grep и несколькими способами. Я хочу иметь что-то вроде supercat, но для команд (а не мертвых).

Приложение Supercat окрашивает любой вводимый текст в зависимости от типа файла и набора правил, связанных с типом файла. Правила используются для сопоставления строк, найденных во входном тексте, и могут быть заданы с использованием простых символов или строк, регулярных выражений и специальных правил форматирования времени.

Допустим , я пишу magiccommand gcc blah blah , эта магическая команда понимает, что она должна раскрасить вывод gcc, и выбирает один шаблон. Теперь я хочу magiccommand mvn foo bar и эта команда принимает другое подходящее правило. Бонусные баллы за читабельные правила - нет "s/^GET.*$/\x1b[31m&\x1b[0m/" безумия.

4 ответа4

11

Вы можете использовать такой инструмент , как grcat/GRC (где первый является инструментом, а второй на переднем конце).

grc выполнит команду с необязательными параметрами [args], передавая свой стандартный вывод или стандартный поток в grcat с соответствующим файлом конфигурации.

Например

3

source-highlight

Вы также можете найти интересные source-highlight выпущенные под GNU.
Вы можете добавить его как псевдоним, например, в ваш .bash_aliases например, как показано ниже.

alias Cat='source-highlight --out-format=esc -o STDOUT -i'  
Cat myfile.c # or myfile.xml ...

Или вы можете сделать аналогичный псевдоним (без -i в конце, чтобы иметь возможность передать)

alias PCat='source-highlight --out-format=esc -o STDOUT '
tail myfile.sh | PCat     # Note the absence of the `-i`

Пример экрана

Выдержка из apt-cache show source-highlight:

Description-ru: преобразовать исходный код в выделенный синтаксис документа.
Эта программа, учитывая исходный файл, создает документ с подсветкой синтаксиса.
Он поддерживает подсветку синтаксиса для более чем 100 форматов файлов, включая основные языки программирования, форматы разметки и форматы файлов конфигурации. Для вывода поддерживаются следующие форматы: HTML, XHTML, LaTeX, Texinfo, цветовые escape-последовательности ANSI и DocBook

Среди опций, которые вы можете прочитать из man source-highlight -s

-s, --src-lang = STRING исходный язык (используйте --lang-list для получения полного списка). Если не указан, исходный язык будет угадан по расширению файла.

--lang-list список всех поддерживаемых языков и связанных файлов определения языка

0

Проблема с grc том, что вы не можете подключиться к нему по конвейеру, но вы можете передать по конвейеру его основную программу grcat . Итак, сначала:

Установить grcat

sudo apt-get install grc

Теперь выполните:

echo "[SEVERE] Service is down" | grcat ~/conf.username

Где conf.myusername содержит:

regexp=SEVERE
colours=on_red
count=more
0

Попробуй ccat

$ ccat file.yml $ ccat file.py $ ccat file.rb $ ccat file.go ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .