是否有一种方法为cat的输出着色,就像grep那样。
对于grep,在大多数控制台中,它会显示一个彩色输出,突出显示搜索的关键字。否则,你可以通过调用grep——color来强制执行 是否有一种通用的方法来根据您的个人选择为任何程序的输出着色。
据我所知,程序本身并不负责颜色。它是壳。
我正在使用FreeBSD 5.2.1中的默认shell,它看起来像从epoch以来从未见过颜色。
是否有一种方法为cat的输出着色,就像grep那样。
对于grep,在大多数控制台中,它会显示一个彩色输出,突出显示搜索的关键字。否则,你可以通过调用grep——color来强制执行 是否有一种通用的方法来根据您的个人选择为任何程序的输出着色。
据我所知,程序本身并不负责颜色。它是壳。
我正在使用FreeBSD 5.2.1中的默认shell,它看起来像从epoch以来从未见过颜色。
当前回答
我推荐使用python包python- pyptions中的pygmentize。您可能需要定义以下方便的别名(除非您使用ccrypt包中的ccat)。
alias ccat='pygmentize -g'
如果你想要行号
alias ccat='pygmentize -g -O style=colorful,linenos=1'
向~/添加上述命令中的一个。bash_别名永久生效
其他回答
老问题,只是为了提供我最终使用的解决方案而回答记录。也许这有点粗糙(可能不是参数的最初目的),但是:
别名 cgrep='grep -C 9000'
猫什么| cgrep 'snozzberries'
..grep -C N将在找到的项的上面和下面提供N行上下文。如果它大于输入,则包括整个输入。在这种情况下,我们只需确保它比我们想要手动查看的任何典型终端输出都大,这通常是您在高亮显示时希望做的事情。
编辑:然而,Beni Cherniavsky-Paskin建议的这个解决方案更优越——它匹配(并突出显示)你要找的单词或行首(不突出显示)。最终的结果正是你想要的。
cat whatever | egrep 'snozzberries|$'
这是我所见过的针对这个问题的最新最佳解决方案,谢谢Beni。
Vimcat是单文件(shell脚本),工作良好:
http://www.vim.org/scripts/script.php?script_id=4325
最近一次更新是2013年12月。提示:你可以通过vimcat -c "set ft=<type>"强制文件类型识别。
在OSX上简单地执行brew install ccat。
https://github.com/jingweno/ccat。与cat类似,但显示内容时使用语法高亮显示。内置围棋。
这个问题非常古老,但我还是无意中发现了它。为了完整起见,问题是“是否有一种方法让cat对其输出进行着色?”是的,对于ansi编码的输出,你可以将这些导出添加到你的.bashrc:
# colorful less output
export LESS_TERMCAP_mb=$'\e[1;32m'
export LESS_TERMCAP_md=$'\e[1;32m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[01;33m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;4;31m'
这将使ansi编码文本的输出上色,如terraform plan:
然而,这与bat不同,bat可以更好地解析json,显示行号,通常用户体验更好。
在这个问题中,https://superuser.com/questions/602294/is-there-colorizer-utility-that-can-take-command-output-and-colorize-it-accordin grcat/grc工具被推荐作为超级猫的替代品。
人是有真才实学的;它是GRC包的一部分(来源):
GRC -通用着色剂grcat的前端(1) Grcat -从标准输入读取,着色并写入标准输出