Accueil·Commandes du terminal

jq

Traitement de texte

Syntaxe

jq '[filter]' [file.json]

Filtre et remodèle du JSON avec son petit langage propre ; il n'est souvent pas installé par défaut, et c'est -r qui retire les guillemets des chaînes.

Options courantes

OptionSignification
-rRaw output, so strings come out without quotes
-cOne compact line per result
-eSet the exit status from the result, for scripts
--argPass a shell string in as a jq variable
-sSlurp the whole input into one array
-nStart from null input and build output yourself

Exemples

curl -s api/users | jq -r '.[].name'

Every name, unquoted, one per line.

jq '.items | length' data.json

Counts the entries in an array.

jq -c '.[] | {id, name}' big.json

Two fields per row, compact.

Ils sont faits pour être chaînés avec des tubes. Trois commandes reliées sont souvent plus courtes qu’une seule qui fait tout.

Comment lire

  • Les crochets [ ] marquent une partie facultative.
  • Les points de suspension … signifient qu’on peut en mettre plusieurs.
  • Les options sont sensibles à la casse : sur certaines commandes, -r et -R ne font pas la même chose.

Questions fréquentes

Q. Que fait jq ?

Filtre et remodèle du JSON avec son petit langage propre ; il n'est souvent pas installé par défaut, et c'est -r qui retire les guillemets des chaînes.

Q. Comment l’écrire ?

jq '[filter]' [file.json] — les crochets marquent ce qui est facultatif.

Q. Combien d’options valent la peine ?

Il y en a 6 ici ; la liste complète est dans man jq. Cette commande relève de Traitement de texte.

Commandes liées

page man: man jq