guettli
guettli

Reputation: 27796

Break JSON in pager "less"

I use the pager called less since 20 years.

Time changes and I often look at files containing json.

A json dict which is on one line is not easy to read for me.

Is there a way to break the json into key-value pairs if you look at the log file?

Example:

How to display a line in a log file which looks like this:

{"timestamp": "2019-05-13 14:40:51", "name": "foo.views.error", "log_intent": "line1\nline2" ...}

roughly like this:

"timestamp": "2019-05-13 14:40:51"
"name": "foo.views.error"
"log_intent": "line1
line2"
....

I am not married with the pager less if there is better tool, please leave a comment.

Upvotes: 2

Views: 252

Answers (1)

hek2mgl
hek2mgl

Reputation: 157927

In your case, the log file seems to consist of one json document per line, you can use jq to preformat the logfile before piping to less:

jq -s . file.log | less

With colors:

jq -Cs . file.log | less -r 

Upvotes: 3

Related Questions