ログファイルには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
) オプションを使用できます。
less
afterのようなパイプコマンドを使用するにはjq
、--color-output
(short: -C
) オプションを使用する必要があります。
less
コマンド accept は、オプションを使用して ANSI シーケンスを再現します-r
。
cat log | jq -cC . | less -r