Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jq Conditional output

I'm using jq to play with json. I was wondering how to conditionally print something in that.

Say I am interested in a field call geo. I used the following command and find out there is only one entry whose geo is null:

% cat all.json | jq '.geo != null' | sort | uniq -c                  1 false 6891 true 

How can I print out that entry only without printing everything else?

Didn't see something like print command in the manual. And this doesn't work: cat all.json | jq 'if .place == null then . end'. jq complained about syntax error.

like image 216
clwen Avatar asked Oct 24 '13 18:10

clwen


1 Answers

You can use the select function to get only required entries:

jq 'select(.geo != null)' all.json 
like image 126
max taldykin Avatar answered Sep 17 '22 22:09

max taldykin