less 包含 JSON 行的文件 - 如何突出显示/着色行?

less 包含 JSON 行的文件 - 如何突出显示/着色行?

我有包含 json 行的日志文件 - less 将其显示为纯文本
我可以用较少的功能对输出进行着色吗?
我也没有找到任何不太兼容的第三方工具与 json 突出显示
此类文件的示例

{"date":"2021-10-21 16:09:54", "perf":{"action":"getTimelineByClient", "time":46.2}}
{"date":"2021-10-22 16:09:54", "perf":{"action":"getTimelineByClient", "time":46.2}}
{"date":"2021-10-23 16:09:54", "perf":{"action":"getTimelineByClient", "time":46.2}}

编辑
@glennjackman 善意地指出https://github.com/sharkdp/bat- 很棒的工具,不适合我的需求,但也许对其他人有帮助。bat首先解析文件,然后尝试显示它。 120k 的短 json 行对于我的机器来说相当沉重

答案1

您可以使用以下命令对 JSON 输出进行着色jq

cat log | jq .

输出很漂亮,但如果你不想要它,你可以使用--compact-output(short: -c) 选项。

less要使用像after这样的管道命令jq,您需要使用--color-output(short: -C) 选项。

less命令accept 可以使用选项重现ANSI 序列-r

cat log | jq -cC . | less -r

相关内容