是否有着色器实用程序可以获取命令输出并根据预定义方案对其进行着色?

是否有着色器实用程序可以获取命令输出并根据预定义方案对其进行着色?

我已经知道我可以使用 grep 为输出添加颜色以及几种不同的方式。我想要一些类似超级猫,但对于命令来说(并没有那么死)。

Supercat 应用程序根据文件类型和与文件类型相关的一组规则为任何输入文本着色。这些规则用于匹配在输入文本中找到的字符串,可以使用简单字符或字符串、正则表达式和特殊时间格式规则来指定。

假设我正在编写magiccommand gcc blah blah,这个神奇的命令知道它必须为 gcc 输出着色并选择一个模板。现在,我愿意magiccommand mvn foo bar并且该命令采用另一个适当的规则。可读规则的加分项——没有"s/^GET.*$/\x1b[31m&\x1b[0m/"sed 的疯狂。

答案1

你可以使用类似的工具格卡特/格鲁吉亚(其中第一个是工具,第二个是前端)。

grc 将使用可选参数 [args] 执行命令 command,并使用适当的配置文件将其 stdout 或 stderr 传输到 grcat。

例如

在此处输入图片描述

答案2

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

描述-en:将源代码转换为语法高亮的文档。
该程序根据给定的源文件生成带有语法高亮的文档。
它支持语法突出显示 100 多种文件格式,包括主要的编程语言、标记格式和配置文件格式。对于输出,支持以下格式:HTML、XHTML、LaTeX、Texinfo、ANSI 颜色转义序列和 DocBook

man source-highlight您可以从中阅读的选项包括-s

-s--src 语言=STRING 源语言(使用 --lang-list 获取完整列表)。 如果未指定,则将从文件扩展名猜测源语言

--lang-list 列出所有支持的语言和相关的语言定义文件

答案3

问题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

答案4

还有https://github.com/dalance/pipecolor它与 grcat 类似,但是用 rust 编写。

相关内容