web-dev-qa-db-fra.com

jq Sortie conditionnelle

J'utilise jq pour jouer avec json. Je me demandais comment imprimer quelque chose sous condition.

Disons que je suis intéressé par un appel de champ geo. J'ai utilisé la commande suivante et découvert qu'il n'y a qu'une seule entrée dont geo est null:

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

Comment imprimer cette entrée uniquement sans imprimer tout le reste?

N'a pas vu quelque chose comme la commande print dans le manuel. Et cela ne fonctionne pas: cat all.json | jq 'if .place == null then . end'. jq s'est plaint d'une erreur de syntaxe.

53
clwen

Vous pouvez utiliser la fonction sélectionner pour obtenir uniquement les entrées requises:

jq 'select(.geo != null)' all.json
99
max taldykin