Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ignore Unparseable JSON with jq

I'm using jq to parse some of my logs, but some of the log lines can't be parsed for various reasons. Is there a way to have jq ignore those lines? I can't seem to find a solution. I tried to use the --seq argument that was recommended by some people, but --seq ignores all the lines in my file.

like image 421
Brandon Avatar asked Jan 11 '17 19:01

Brandon


1 Answers

Assuming that each log entry is exactly one line, you can use the -R or --raw-input option to tell jq to leave the lines unparsed, after which you can prepend fromjson? | to your filter to make jq try to parse each line as JSON and throw away the ones that error.

like image 150
jwodder Avatar answered Oct 17 '22 06:10

jwodder