有没有上色的输出的方法cat
,一路grep
一样。
对于grep
,在大多数游戏机它显示的彩色输出突出搜索的关键字。 否则,您可以通过调用迫使它grep --color
是否有颜色可根据您的个人选择任何程序的输出的通用方式。
据我了解,该计划本身是不负责的颜色。 它是外壳。
我使用了FreeBSD 5.2.1看起来就像它从来没有纪元以来见过的颜色默认的shell。
有没有上色的输出的方法cat
,一路grep
一样。
对于grep
,在大多数游戏机它显示的彩色输出突出搜索的关键字。 否则,您可以通过调用迫使它grep --color
是否有颜色可根据您的个人选择任何程序的输出的通用方式。
据我了解,该计划本身是不负责的颜色。 它是外壳。
我使用了FreeBSD 5.2.1看起来就像它从来没有纪元以来见过的颜色默认的shell。
cat
与语法高亮简直是超出范围。 cat
并不意味着为。 如果你只是想通过某种方法有色(搭配同色系的整个文件)某些文件的全部内容,您可以利用终端转义序列来控制颜色。
下面是一个示例脚本,将选择基于文件类型的颜色(你可以使用这样的事情,而不是调用cat
直接):
#!/bin/bash
fileType="$(file "$1" | grep -o 'text')"
if [ "$fileType" == 'text' ]; then
echo -en "\033[1m"
else
echo -en "\033[31m"
fi
cat $1
echo -en "\033[0m"
上述(支持这些转义序列的终端上)将打印任何文本文件为“粗体”,和将打印任何二进制文件为红色。 您可以使用strings
,而不是cat
打印二进制文件,并可以提升逻辑,使其满足您的需求。
我建议pygmentize
从Python包python-pygments
。 您可能要定义以下得心应手别名(除非你使用ccat
从ccrypt包)。
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
我附加镜头两个向下跌破中highlightings比较不错
这里是pygmentize
在行动:
这是highlight
:
你要找的工具可能是supercat (这里有一个快速的介绍由Linux杂志出版)。
我知道这个答案是晚了,它并不能完全满足OP要求。 所以我将它添加仅供参考(也可能是为其他人寻找如何上色文本文件输出有用)。
vimcat
是单文件(shell脚本)和良好的工作:
http://www.vim.org/scripts/script.php?script_id=4325
最后更新时间是从12月2013年提示:您可以通过强制文件类型识别vimcat -c "set ft=<type>"
。
从四月下旬起,2018:
蝙蝠 -猫(1)克隆与语法高亮和Git集成。
该项目是一个猫克隆与写在锈的颜色和自定义支持。 它不仅提供语法与多个主题突出,同时也整合的Git。 如文档中所述:
蝙蝠试图实现以下目标 :
- 提供优美,先进的语法高亮
- 使用Git集成显示文件修改
- 是一个下拉更换为(POSIX)猫
- 提供了一个用户友好的命令行界面
这是不用说,比pygmentize要快,与大文件面临不呛。
源代码和二进制版本 + 安装说明可以在Github上储存库,以及一个可以找到替代方案的比较 。
有猫的彩色版本- CCAT 。 得到它https://github.com/jingweno/ccat/ 。
这是一个独立的可执行文件,以便安装它,您可以解开您的操作系统从二进制版本https://github.com/jingweno/ccat/releases和复制与CCAT二进制例如,以/usr/local/bin
。
如果你想避免的二进制文件,或者如果有你的平台(例如覆盆子PI等)没有二进制,那么你就可以交替地从源代码编译因为你有一个工作go
开发环境 ( apt install golang
基于Debian的Linux版本或brew install golang
在Mac):
go get -u github.com/jingweno/ccat
该
ccat
二进制文件将您的下创建$GOPATH/bin
。
brew install ccat
cat
要定期更换cat
与ccat
添加在~/.bashrc
:
alias cat="ccat $*"
alias cat0="/bin/cat $*" # for cases when you need plain `cat`
ccat
是实现围棋 ,所以它是运行速度比基于Python的解决方案,如更快的本机二进制Pygments来做 ,后面的模块pygmentize
; 我没有看到之间的任何显着的速度差cat
和ccat
。
source-highlight
也许这是有可能找到有趣的source-highlight
GNU下发布 :从不同的包highlight
。
摘自apt-cache show source-highlight
:
说明恩: 转换的源代码语法高亮文件。
这一方案,给出一个源文件,生成语法高亮的文件。
它支持超过100个文件格式,语法高亮 ...
对于输出,下面的格式支持:HTML,XHTML,乳胶,Texinfo的,ANSI颜色转义序列 ,和DocBook的
我做了一些别名(猫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 ...
或者你也可以(不包括做类似的别名-i
在年底有可能在管 )
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琅 = STRING源语言(使用--lang列表以获得完整的列表)。 如果没有指定,源语言将文件扩展名来猜测 。
--lang名单列表中的所有受支持的语言和相关的语言定义文件
最好的办法,并做到这一点,如果你在你的机器有vim的最简单的方法是使用vimcat
附带vimpager
程序。
git clone git://github.com/rkitover/vimpager cd vimpager sudo make install
运行vimcat:
vimcat index.html
据我了解,二进制本身是不负责的颜色。 它是外壳。
That't不正确的。 终端只是解释颜色代码被输出到所述终端。 根据其能力可以忽略某些格式/着色代码。
从手册页它似乎并不支持猫着色输出。 即使是支持着色,如grep又该它在文本文件中的颜色? 语法高亮所需的底层语言这不是在简单的工具,像猫的范畴的知识。
您可以尝试更强大的编辑器如vim,emacs的,在UNIX平台的gedit等,如果看到代码高亮是你的目标。
On OSX simply do brew install ccat
.
https://github.com/jingweno/ccat. Like cat but displays content with syntax highlighting. Built in Go.
老问题,只是回答备案提供我结束了使用的解决方案。 也许这是一个有点哈克(可能不是参数的原意),但是:
别名cgrep =离合器-C 9000'
猫什么| cgrep 'snozzberries'
.. grep -CN
将提供上面和下面找到的项目上下文的N行。 如果它是比输入大,整个输入是包括在内。 在这种情况下,我们只是要确保它比任何典型的终端输出较大,我们将要在手动查找,这是你正在寻找做,如果突出普遍的东西。
编辑:但是,这个方案通过贝尼切尔尼亚夫斯基-帕斯金以下建议优越-它匹配(和亮点),要么你要找的字或行的开头(不高亮)。 最终的结果是你想要什么。
cat whatever | egrep 'snozzberries|$'
这是我见过这个问题的新的最佳解决方案,感谢贝尼。
在这个问题上https://superuser.com/questions/602294/is-there-colorizer-utility-that-can-take-command-output-and-colorize-it-accordin grcat
/ grc
推荐工具,替代supercat
。
曼GRC和grcat
; 它是部分GRC包 ( 源 ):
GRC - 前端的通用colouriser grcat(1)
grcat - 从标准输入读取,colourise并写到标准输出
蝙蝠正是这是否和可以使用别名猫alias cat='bat'
我写的小脚本中使用执行colourization pygmentize
。
colorize_via_pygmentize() {
if [ ! -x "$(which pygmentize)" ]; then
echo "package \'Pygments\' is not installed!"
return -1
fi
if [ $# -eq 0 ]; then
pygmentize -g $@
fi
for FNAME in $@
do
filename=$(basename "$FNAME")
lexer=`pygmentize -N \"$filename\"`
if [ "Z$lexer" != "Ztext" ]; then
pygmentize -l $lexer "$FNAME"
else
pygmentize -g "$FNAME"
fi
done
}
然后再做一个别名脚本。 alias cat=colorize_via_pygmentize
。 也不要忘了把它保存在〜/ .bashrc中 。
如果你只是想要一个衬垫设置cat
输出给定的颜色,可以追加
alias cat="echo -en 'code' | cat - "
你~/.$(basename $SHELL)rc
下面是颜色代码要点: https://gist.github.com/chrisopedia/8754917
我喜欢'\e[1;93m'
,这是高强度的黄色。 它看起来像这样: