是否有一种方法为cat的输出着色,就像grep那样。

对于grep,在大多数控制台中,它会显示一个彩色输出,突出显示搜索的关键字。否则,你可以通过调用grep——color来强制执行 是否有一种通用的方法来根据您的个人选择为任何程序的输出着色。

据我所知,程序本身并不负责颜色。它是壳。

我正在使用FreeBSD 5.2.1中的默认shell,它看起来像从epoch以来从未见过颜色。


当前回答

这个问题非常古老,但我还是无意中发现了它。为了完整起见,问题是“是否有一种方法让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,显示行号,通常用户体验更好。

其他回答

source-highlight

也许可以找到GNU下发布的有趣的source-highlight:一个不同于highlight的包。

摘自apt-cache show source-highlight:

描述- zh:将源代码转换为语法突出显示的文档。 给定一个源文件,这个程序将生成一个具有语法的文档 突出显示。 它支持超过100种文件格式的语法高亮显示… 输出支持以下格式:HTML、 XHTML, LaTeX, Texinfo, ANSI颜色转义序列和DocBook

我做了一些别名(Cat和PCat,见下文),这是他们的输出

你可以安装在Debian的基础上

sudo apt-get install source-highlight

并将其添加为别名,例如在.bash_aliases中添加如下所示的代码。

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

或者你可以做一个类似的别名(没有-iat在结尾,以便管道的可能性)

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

在可能从man source-highlight读取的选项中,-s下划线可以通过命令行选择或强制突出显示,或者将此任务留给程序:

-s,——src-lang=STRING源语言(使用——lang-list获取完整的列表)。如果未指定,则将根据文件扩展名猜测源语言。 ——lang-list 列出所有支持的语言和相关的语言定义文件

如果你的机器中有vim,最好也是最简单的方法是使用vimcat,它是vimpager程序附带的。

安装vimage with Git克隆Git://github.com/rkitover/vimpager cd vimpager Sudo make install vimcat运行: vimcat index . html

我推荐使用python包python- pyptions中的pygmentize。您可能需要定义以下方便的别名(除非您使用ccrypt包中的ccat)。

alias ccat='pygmentize -g'

如果你想要行号

alias ccat='pygmentize -g -O style=colorful,linenos=1'

向~/添加上述命令中的一个。bash_别名永久生效

Vimcat是单文件(shell脚本),工作良好:

http://www.vim.org/scripts/script.php?script_id=4325

最近一次更新是2013年12月。提示:你可以通过vimcat -c "set ft=<type>"强制文件类型识别。

放置在~/.bashrc中

function ccat() { docker run -it -v "$(pwd)":/workdir -w /workdir whalebrew/pygmentize $1; }

then

ccat filename

Whalebrew为Docker映像创建别名,这样您就可以像运行本机命令一样运行它们。它很像Homebrew,但是有Docker图像。