Les filtres jq du quotidien, regroupés par tâche : atteindre une valeur, filtrer et sélectionner, manipuler les collections, transformer valeurs et chaînes, remettre en forme un objet ou un tableau, mettre à jour des chemins en place, brancher sur la logique et aborder la réduction avancée, plus les options de ligne de commande qui façonnent l'entrée et la sortie. Chaque ligne associe le filtre au résultat qu'il produit.
jq est un filtre : il lit du JSON sur stdin, exécute un pipeline d'expressions séparées par des tubes et écrit du JSON sur stdout. Le point est la valeur courante ; tout s'y construit. Le moyen le plus rapide d'apprendre est d'envoyer des données réelles dans les recettes ci-dessous et d'observer la sortie. Lancez-les comme jq 'filtre' fichier.json ou curl ... | jq 'filtre'.
Tableau de référence · 65 entrées
Recettes jqExplained
65 of 65 rows
Accès
L'entrée entière, mise en forme.
La valeur d'une clé, ou de clés imbriquées.
La valeur d'une clé dont le nom contient des caractères spéciaux.
Le premier élément d'un tableau (le négatif compte depuis la fin).
Chaque élément d'un tableau, ou chaque valeur d'un objet, sur sa propre ligne.
La valeur de la clé, ou null, sans erreur quand la clé est absente.
Filtrer et sélectionner
L'entrée inchangée quand cond est vrai, sinon rien.
Applique expr à chaque élément d'un tableau et collecte les résultats.
Les noms de clés triés, ou les valeurs, d'un objet sous forme de tableau.
La longueur d'un tableau ou d'une chaîne, ou le nombre de clés d'un objet.
Seulement les éléments dont l'âge dépasse 18, en un seul tableau.
Collections
Vrai quand au moins un élément, ou quand chaque élément, est truthy ou réussit un filtre.
Vrai quand la clé k existe dans l'objet ; in effectue le même test du côté de la clé.
Le premier élément, le dernier, ou seulement les n premières sorties de f.
La plus petite, ou la plus grande, valeur d'un tableau.
Les nombres de 0 jusqu'à n, chacun comme sortie propre.
Les tableaux imbriqués réduits à un seul tableau plat.
Vrai quand x apparaît quelque part dans l'entrée ; inside inverse les rôles.
Applique f à chaque valeur depuis le bas, puis reconstruit toute l'entrée.
Transformer
Un tableau contenant uniquement le champ price de chaque élément.
La somme d'un tableau de nombres, ou la fusion d'un tableau d'objets.
Convertit une valeur en chaîne, ou une chaîne numérique en nombre.
Encode l'entrée en chaîne JSON ou en base64.
Une chaîne en minuscules.
Chaînes
Une chaîne avec la valeur de expr insérée dans le texte.
Remplace chaque occurrence du motif, ou seulement la première, par s.
Découpe une chaîne en tableau sur un séparateur, ou assemble un tableau en une seule chaîne.
Teste une chaîne contre un motif, ou extrait les correspondances et les groupes nommés.
Retire un préfixe, ou un suffixe, seulement quand il est présent.
Vrai ou faux : la chaîne commence, ou finit, par s.
Une chaîne en majuscules.
Un tableau encodé en ligne CSV, en ligne TSV, ou en arguments shell entre guillemets.
Remise en forme
Un nouvel objet avec uniquement les champs id et name de l'entrée.
Un tableau avec le nom de chaque élément.
Un tableau d'objets {key, value} construit depuis un objet.
Un objet construit depuis un tableau d'objets {key, value}.
Les éléments regroupés en sous-tableaux selon leur champ cat.
Trie selon un champ, ou garde un élément par id distinct.
Mise à jour et chemins
Met à jour la valeur de la clé en lui appliquant f.
Écrase la valeur de la clé avec v.
Ajoute n à la valeur de count, sur place.
Lit, écrit ou supprime des valeurs aux chemins donnés en tableaux.
Contrôle et logique
a quand c est vrai, b sinon, avec elif pour plus de branches.
Exécute f, et exécute g avec le message d'erreur à la place quand f échoue.
S'arrête avec une erreur portant msg, sauf si un try l'attrape.
Aucune sortie du tout ; cette branche disparaît simplement des résultats.
Combine des valeurs vrai et faux, ou inverse une valeur.
Avancé
Replie tout le tableau en un total cumulé.
Comme reduce, mais émet l'état après chaque étape, pas seulement le dernier.
L'entrée suivante, ou toutes les entrées restantes, tirées en plein filtre.
Une valeur sous forme de texte JSON, ou du texte JSON analysé en valeur.
Du texte base64 décodé en la chaîne d'origine.
Une affectation en profondeur dans la structure, créant les niveaux manquants au passage.
a s'il n'est ni null ni faux, sinon b (une valeur par défaut).
L'entrée avec une clé retirée.
Chaque chemin de l'entrée sous forme de tableau de clés, du haut vers le bas.
Variables et CLI
Définit $name comme chaîne shell, utilisable dans le filtre.
Définit $name depuis du JSON brut, pour les nombres, booléens, tableaux ou objets.
Définit $name comme tout le contenu d'un fichier JSON.
Affiche les résultats chaînes bruts, sans guillemets ni échappements.
Affiche chaque résultat en compact sur une ligne, sans indentation.
Exécute le filtre une fois sur null, pour construire une sortie à partir de rien.
Lit toute l'entrée dans un seul tableau avant l'exécution du filtre.
Définit le code de sortie depuis la dernière sortie, pour que les scripts shell testent le résultat.
La valeur d'une variable d'environnement, lue dans le filtre.