命令行工具在输出文件中保留代码高亮?

JAC*_*K M 3 command-line syntax-highlighting

例如,当使用 ack 在源文件中搜索代码时,输​​出高亮显示。但是,如果将输出通过管道传输到本地文件,则会丢失代码亮点。我们是否有命令行工具来保留它?

要理解我的意思:

$ git clone https://github.com/koehlma/jaspy
$ cd jaspy/
$ ack func ./* # you see the high light for each match
$ ack func ./* > output.txt
$ cat output.txt # you don't see the high light
Run Code Online (Sandbox Code Playgroud)

joe*_*epd 6

ack做一些类似于grep. 当它将文本放入终端时,它会以彩色输出结果。如果将输出重定向到文件,则匹配项不会着色。

您可以使用选项--color和覆盖这些启发式方法--nocolor

检查man 1 ack更多详细信息。