是否有一种方法为cat的输出着色,就像grep那样。
对于grep,在大多数控制台中,它会显示一个彩色输出,突出显示搜索的关键字。否则,你可以通过调用grep——color来强制执行 是否有一种通用的方法来根据您的个人选择为任何程序的输出着色。
据我所知,程序本身并不负责颜色。它是壳。
我正在使用FreeBSD 5.2.1中的默认shell,它看起来像从epoch以来从未见过颜色。
是否有一种方法为cat的输出着色,就像grep那样。
对于grep,在大多数控制台中,它会显示一个彩色输出,突出显示搜索的关键字。否则,你可以通过调用grep——color来强制执行 是否有一种通用的方法来根据您的个人选择为任何程序的输出着色。
据我所知,程序本身并不负责颜色。它是壳。
我正在使用FreeBSD 5.2.1中的默认shell,它看起来像从epoch以来从未见过颜色。
当前回答
只需使用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也可能是一种替代方案。
其他回答
我已经写了一个小脚本来执行使用pygmentze着色。
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
}
然后为脚本创建一个别名。别名猫= colorize_via_pygmentize。另外,不要忘记将其保存在~/.bashrc中。
为此,我编写了一个基于rust的小软件。它被命名为highlighter,可以在以下回购中找到:
https://codeberg.org/mehrad/highlighter
基本上,您只需将前一个命令的输出输出到它中,并告诉它根据您的偏好对其进行着色。例如:
locale | highlighter --blue="=" --red="_U.*" --yellow "NAME" --green="_ME.*"
如果您认为名称太长,我建议为它创建一个别名。我宁愿取一个较长但有描述性的名字,也不愿取一个短而模糊的名字。
放置在~/.bashrc中
function ccat() { docker run -it -v "$(pwd)":/workdir -w /workdir whalebrew/pygmentize $1; }
then
ccat filename
Whalebrew为Docker映像创建别名,这样您就可以像运行本机命令一样运行它们。它很像Homebrew,但是有Docker图像。
老问题,只是为了提供我最终使用的解决方案而回答记录。也许这有点粗糙(可能不是参数的最初目的),但是:
别名 cgrep='grep -C 9000'
猫什么| cgrep 'snozzberries'
..grep -C N将在找到的项的上面和下面提供N行上下文。如果它大于输入,则包括整个输入。在这种情况下,我们只需确保它比我们想要手动查看的任何典型终端输出都大,这通常是您在高亮显示时希望做的事情。
编辑:然而,Beni Cherniavsky-Paskin建议的这个解决方案更优越——它匹配(并突出显示)你要找的单词或行首(不突出显示)。最终的结果正是你想要的。
cat whatever | egrep 'snozzberries|$'
这是我所见过的针对这个问题的最新最佳解决方案,谢谢Beni。
在这个问题中,https://superuser.com/questions/602294/is-there-colorizer-utility-that-can-take-command-output-and-colorize-it-accordin grcat/grc工具被推荐作为超级猫的替代品。
人是有真才实学的;它是GRC包的一部分(来源):
GRC -通用着色剂grcat的前端(1) Grcat -从标准输入读取,着色并写入标准输出