weniger eine Datei mit JSON-Zeilen – wie kann ich die Zeilen hervorheben/einfärben?

weniger eine Datei mit JSON-Zeilen – wie kann ich die Zeilen hervorheben/einfärben?

Ich habe Protokolldateien mit JSON-Zeilen darin - Less zeigt sie als einfachen Text an
Kann ich die Ausgabe mit Less-Funktionen einfärben?
Außerdem habe ich kein weniger kompatibles Drittanbietertool mit JSON-Hervorhebung gefunden
Beispiel einer solchen Datei

{"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}}

Bearbeiten
@glennjackman hat freundlicherweise darauf hingewiesenhttps://github.com/sharkdp/bat- tolles Tool, nicht für meine Bedürfnisse geeignet, aber vielleicht für andere hilfreich. batparst zuerst die Datei und versucht dann, sie anzuzeigen. 120k kurze JSON-Zeilen waren ziemlich viel für meinen Rechner

Antwort1

Sie können Ihre JSON-Ausgabe mit folgenden Elementen einfärben:jq

cat log | jq .

Die Ausgabe ist hübsch, aber wenn Sie sie nicht möchten, können Sie die Option --compact-output(short -c:) verwenden.

Um einen Pipe-Befehl wie lessafter zu verwenden jq, müssen Sie die Option --color-output(short -C:) verwenden.

lessBefehl „Akzeptieren“, um ANSI-Sequenzen mit -rOption zu reproduzieren.

cat log | jq -cC . | less -r

verwandte Informationen