120 votes

Jq Sortie conditionnelle

Je suis en train d'utiliser jq pour manipuler du json. Je me demandais comment imprimer quelque chose de manière conditionnelle.

Disons que je m'intéresse à un champ appelé geo. J'ai utilisé la commande suivante et j'ai 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 puis-je imprimer cette entrée uniquement sans imprimer tout le reste ?

Je n'ai pas vu de commande du type print dans le manuel. Et cela ne fonctionne pas : cat all.json | jq 'if .place == null then . end'. jq a signalé une erreur de syntaxe.

195voto

max taldykin Points 4959

Vous pouvez utiliser la fonction select pour obtenir uniquement les entrées nécessaires:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X