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

相關內容