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. bat
parst 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 less
after zu verwenden jq
, müssen Sie die Option --color-output
(short -C
:) verwenden.
less
Befehl „Akzeptieren“, um ANSI-Sequenzen mit -r
Option zu reproduzieren.
cat log | jq -cC . | less -r