← retour aux snippets

jq: extraire des champs et filtrer des objets

Sélectionner, transformer et agréger des données JSON en ligne de commande proprement.

bash text #jq#json#filter

objectif

Manipuler des JSON sans écrire un script complet: mapping, filtrage, agrégation.

code minimal

# extraire .items[].name dans un JSON
jq -r '.items[].name' data.json

utilisation

# filtrer et formater en CSV: name,size triés par taille
jq -r '.files | sort_by(.size) | reverse | .[] | [.name, .size] | @csv' files.json

# somme d'un champ
jq '[.items[].value] | add' data.json

variante(s) utile(s)

# filtrer condition: status == "ok" et taille > 100
jq '.items[] | select(.status=="ok" and .size>100)' data.json

notes

  • -r sort des chaînes brutes (sans quotes).
  • combinez avec curl pour des APIs HTTP.