小编典典

语法高亮/着色猫

all

有没有一种方法可以对 的输出进行着色cat,方法grep可以。

对于grep,在大多数控制台中,它会显示一个彩色输出,突出显示搜索到的关键字。否则,你可以通过调用grep --color Is there a
generic way to color the output of any program 根据你的个人选择来强制它。

据我了解,程序本身不对颜色负责。它是外壳。

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


阅读 86

收藏
2022-05-20

共1个答案

小编典典

catwith
语法高亮只是超出范围。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打印二进制文件,并且可以增强逻辑以使其适合您的需求。

2022-05-20