Syntaxe
jq [OPTIONS] FILTRE [FICHIER...]
Options principales
| Option | Description |
|---|
-r | Afficher les chaines sans guillemets |
-c | Sortie compacte sur une seule ligne |
-e | Code de retour base sur le résultat |
-s | Lire toute l'entrée comme un seul tableau |
--arg K V | Definir une variable utilisable dans le filtre |
Exemples
Extraire un champ d'un objet JSON
$ echo '{"nom": "mouctar", "role": "admin"}' | jq '.nom'
"mouctar"
$ echo '{"nom": "mouctar", "role": "admin"}' | jq -r '.nom'
mouctar
Filtrer un tableau d'objets
$ cat utilisateurs.json | jq '.[] | select(.actif == true) | .nom'
"mouctar"
"alice"
"bob"
Transformer la structure d'un JSON
$ cat serveurs.json | jq '[.[] | {hote: .hostname, ip: .adresse}]'
[
{ "hote": "web-01", "ip": "192.168.1.10" },
{ "hote": "db-01", "ip": "192.168.1.20" }
]
Compter les éléments d'un tableau
$ cat logs.json | jq '[.[] | select(.niveau == "erreur")] | length'
42
Utiliser des variables dans le filtre
$ jq --arg env "production" '.[] | select(.environnement == $env)' config.json
{
"nom": "api-prod",
"environnement": "production",
"port": 8080
}