JSON 行を含むファイル - 行を強調表示/色付けするにはどうすればよいですか?

JSON 行を含むファイル - 行を強調表示/色付けするにはどうすればよいですか?

ログファイルにはjson行が含まれていますが、lessではプレーンテキストとして表示されます。less
の機能を使用して出力を色付けできますか?
また、jsonの強調表示機能を備えたlessと互換性のあるサードパーティツールは見つかりませんでした。
このようなファイルの例

{"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) オプションを使用できます。

lessafterのようなパイプコマンドを使用するにはjq--color-output(short: -C) オプションを使用する必要があります。

lessコマンド accept は、オプションを使用して ANSI シーケンスを再現します-r

cat log | jq -cC . | less -r

関連情報