语法突出显示/着色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
  • Bitbucket回购:https://bitbucket.org/birkenfeld/pygments-main
  • GitHub镜像:https://github.com/sglyon/pygments
  • 在行动中:

    我将附加镜头放在下面,以便在突出显示中进行比较

    这里是pygmentize在行动: pygmentize突出显示python文件

    这是highlight高亮突出显示python文件

    链接地址: http://www.djcxy.com/p/8263.html

    上一篇: Syntax highlighting/colorizing cat

    下一篇: How to prettyprint a JSON file?