语法突出显示/着色cat
有没有上色的输出的方法cat
,一路grep
一样。
对于grep
,在大多数控制台中,它会显示一个突出显示搜索关键字的彩色输出。 否则,你可以通过调用grep --color
来强制它grep --color
是否有一种通用的方式来根据你的个人选择给任何程序的输出着色。
根据我的理解,程序本身不对颜色负责。 它是壳。
我在FreeBSD 5.2.1中使用了默认的shell,它看起来像是自从epoch以来从未见过的颜色。
语法突出的cat
只是超出范围。 cat
不是那个意思。 如果您只想让某些文件的全部内容以某种方式着色(整个文件的颜色相同),则可以使用终端转义序列来控制颜色。
以下是一个示例脚本,它将根据文件类型选择颜色(您可以使用类似这样的内容代替直接调用cat
):
#!/bin/bash
fileType="$(file "$1" | grep -o 'text')"
if [ "$fileType" == 'text' ]; then
echo -en " 33[1m"
else
echo -en " 33[31m"
fi
cat $1
echo -en " 33[0m"
以上(在支持这些转义序列的终端上)将以“粗体”打印任何文本文件,并将打印任何二进制文件为红色。 您可以使用strings
而不是cat
来打印二进制文件,并且可以增强逻辑以使其适合您的需要。
我建议从python软件包python-pygments
pygmentize
。 您可能需要定义以下便捷别名(除非您使用ccrypt软件包中的ccat
)。
alias ccat='pygmentize -g'
如果你想要行号码:
alias ccat='pygmentize -g -O style=colorful,linenos=1'
选项:
pygmentize很好。 我有一个别名:
alias c='pygmentize -g'
但重点是另一个广泛可用的替代方案
alias cats='highlight -O ansi --force'
安装:
您可能必须使用以下方法安装pygments
:
sudo pip install pygments
sudo easy_install Pygments #for Mac user
以及所有发行版都可以轻松获得的highlight
包
sudo apt-get install highlight
sudo yum install highlight
在行动中:
我将附加镜头放在下面,以便在突出显示中进行比较
这里是pygmentize
在行动:
这是highlight
: