GNU/Linux >> Tutoriels Linux >  >> Linux

Utilisation de jq pour récupérer la valeur de la clé à partir de la sortie json

Vous devez combiner les filtres au moyen de | opérateur :

$ jq -r '.[] | .[] | .name' test.json 
rhel6.6
rhel7

Le premier .[] récupère repositories déployer. Le prochain .[] récupère tous les éléments du repositories déployer. Enfin, .name extrait les propriétés des éléments du tableau (objets).

Remarque, le premier .[] fonctionne sur l'objet car il s'agit d'une fonctionnalité documentée :

.[]
    If you use the .[index] syntax, but omit the index entirely, it
    will return all of the elements of an array...

    You can also use this on an object, and it will return all the
    values of the object.

Vous souhaitez consulter le tableau des référentiels au lieu de traiter l'entrée comme un tableau :

$ jq -r '.repositories[].name' file
rhel6.6
rhel7

Linux
  1. Supprimer la redondance des colonnes de sortie ?

  2. Diviser la sortie de la commande par colonnes à l'aide de Bash ?

  3. Tableau dans Bash introuvable

  4. Utilisation de la sortie des commandes précédentes dans bash

  5. convertir la sortie bash `ls` en tableau json

Notification par SMS de Nagios via Kannel

Analyser un champ d'un tableau Json dans un tableau Bash ?

Comment créer un tableau d'éléments uniques à partir d'une chaîne/tableau dans Bash ?

Détecter si la touche est enfoncée à partir du script ?

Exécuter une commande à l'aide d'arguments provenant d'un tableau ?

Coloriser la sortie des capteurs ?