我已经知道我可以使用 grep 为输出添加颜色以及几种不同的方式。我想要一些类似超级猫,但对于命令来说(并没有那么死)。
Supercat 应用程序根据文件类型和与文件类型相关的一组规则为任何输入文本着色。这些规则用于匹配在输入文本中找到的字符串,可以使用简单字符或字符串、正则表达式和特殊时间格式规则来指定。
假设我正在编写magiccommand gcc blah blah
,这个神奇的命令知道它必须为 gcc 输出着色并选择一个模板。现在,我愿意magiccommand mvn foo bar
并且该命令采用另一个适当的规则。可读规则的加分项——没有"s/^GET.*$/\x1b[31m&\x1b[0m/"
sed 的疯狂。
答案1
答案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 编写。