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

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

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

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


当前回答

选项:

侏儒化是好的。我有一个别名:

alias c='pygmentize -g'

但高光是另一种广泛使用的选择

alias cats='highlight -O ansi --force'

安装:

你可能必须使用以下方法之一来安装pyments:

sudo apt install python-pygments
sudo pip install pygments
sudo easy_install Pygments #for Mac user

和突出包,这是很容易在所有发行版

sudo apt install highlight
sudo yum install highlight

Bitbucket回购:https://bitbucket.org/birkenfeld/pygments-main GitHub镜像:https://github.com/sglyon/pygments

在行动:

我在下面附上了两者的照片,以便在高亮部分进行比较

以下是pygmentize的作用:

这是重点:

其他回答

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

alias ccat='pygmentize -g'

如果你想要行号

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

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

为此,我编写了一个基于rust的小软件。它被命名为highlighter,可以在以下回购中找到:

https://codeberg.org/mehrad/highlighter

基本上,您只需将前一个命令的输出输出到它中,并告诉它根据您的偏好对其进行着色。例如:

locale | highlighter  --blue="=" --red="_U.*" --yellow "NAME" --green="_ME.*"

如果您认为名称太长,我建议为它创建一个别名。我宁愿取一个较长但有描述性的名字,也不愿取一个短而模糊的名字。

如果你只想用一行代码将cat输出设置为给定的颜色,你可以追加

几只猫=“回音非code' | cat - "

致你的~/。rc (basename壳美元)

这里有一个颜色代码的要点:https://gist.github.com/chrisopedia/8754917

我喜欢“\e[1;93m”,它是高强度的黄色。它是这样的:

你正在寻找的工具可能是supercat(这是Linux Journal发布的一个快速介绍)。

我意识到这个答案晚了,并且没有完全满足OP的要求。所以我添加它只是为了参考(它可能对其他寻找如何为文本文件输出着色的人有用)。

只需使用vim和这个vimrc文件。

oneliner:

vim -c '1' -c 'set cmdheight=1' -c 'set readonly' -c 'set nomodifiable' -c 'syntax enable' -c 'set guioptions=aiMr' -c 'nmap q :q!<CR>' -c 'nmap <Up> <C-Y>' -c 'nmap <Down> <C-E>' -c 'nmap ^V <C-F><C-G>' "$@" 

Nano -v也可能是一种替代方案。