Commande Bash JQ

Commande Bash JQ
Les données JSON sont utilisées à diverses fins. Mais les données JSON ne peuvent pas être facilement lues à partir du fichier JSON en utilisant un script bash comme d'autres fichiers normaux. jq L'outil est utilisé pour résoudre ce problème. jq La commande fonctionne comme sed et awk commande, et il utilise un langage spécifique au domaine pour travailler avec les données JSON. jq n'est pas une commande intégrée. Donc, vous devez installer cette commande pour l'utiliser. Comment vous pouvez installer et appliquer jq La commande de lecture ou de manipulation des données JSON est affichée dans ce tutoriel.

Installation de JQ

Exécutez la commande suivante pour installer JQ sur Ubuntu.

$ sudo apt-get install jq

Lire les données JSON

Supposons que vous ayez déclaré une variable JSON nommée Jsondata dans le terminal et courir jq Commande avec cette variable pour imprimer le contenu de cette variable.

$ JSondata = '["Book": "Php 7", "Publication": "apress",
"Book": "React 16 Essentials", "Publication": "Packt"] '
$ echo "$ jSondata" | JQ '.'

Lire les données JSON avec l'option -c

-C Option utilise avec la commande jq pour imprimer chaque objet JSON dans chaque ligne. Après avoir exécuté la commande suivante, chaque objet de la variable JSondata sera imprimé.

$ echo "$ jSondata" | JQ -C '.[] '

Lire un fichier JSON

La commande JQ peut également être utilisée pour lire le fichier JSON. Créer un fichier JSON nommé étudiants.JSON avec le contenu suivant pour tester les commandes suivantes de ce tutoriel.

Étudiants.json

[

"Roll": 3,
"Nom": "Micheal",
"Lot": 29,
"Département": "CSE"
,

"Roll": 55,
"Nom": "Lisa",
"Lot": 34,
"Département": "BBA"
,

"Roll": 12,
"Nom": "John",
"Lot": 22,
"Département": "anglais"

]]

Exécutez la commande suivante pour lire les étudiants.fichier json.

$ JQ '.' Étudiants.json

Lire le fichier JSON avec '|'

Vous pouvez utiliser '|' Symbole de la manière suivante pour lire n'importe quel fichier JSON.

$ étudiants chat.JSON | JQ '.'

Lire des valeurs de clés uniques

Vous pouvez facilement lire un objet particulier à partir d'un fichier JSON en utilisant jq commande. Dans Étudiants.json, Il y a quatre objets. Ceux-ci sont rouleau, nom, lot et département. Si vous souhaitez lire la valeur de département La clé uniquement à partir de chaque enregistrement puis l'exécution jq commande de la manière suivante.

$ JQ '.[] | .Étudiants du département.json

Lire plusieurs clés

Si vous souhaitez lire deux ou plusieurs valeurs d'objet à partir des données JSON, mentionnez les noms d'objets en séparant la virgule (,) dans la commande JQ. La commande suivante récupérera les valeurs de nom et département clés.

$ JQ '.[] | .nom, .Étudiants du département.json

Supprimer la clé des données JSON

jq La commande est utilisée non seulement pour lire les données JSON mais aussi pour afficher les données en supprimant la clé particulière. La commande suivante imprimera toutes les valeurs clés de Étudiants.json dossier en excluant grouper clé. carte et del La fonction est utilisée dans jq commande pour faire la tâche.

$ JQ 'Map (del (.lot)) 'étudiants.json

Valeurs de cartographie

Sans supprimer la clé des données JSON, vous pouvez utiliser la fonction MAP avec la commande JQ à diverses fins. Les valeurs numériques des données JSON peuvent être augmentées ou diminuées par la fonction de carte. Créer un fichier JSON nommé Nombre.json avec le contenu suivant pour tester les commandes suivantes.

[40,34,12,67,45]

Exécutez la commande suivante pour ajouter 10 avec chaque valeur d'objet de Nombres, JSON.

$ JQ 'Map (.+10) 'Nombres.json

Exécutez la commande suivante pour soustraire 10 de chaque valeur d'objet de Nombres, JSON.

$ JQ 'Map (.-10) 'Nombres.json

Recherche de valeurs par index et longueur

Vous pouvez lire des objets à partir du fichier JSON en spécifiant l'index et la longueur particuliers. Créer un fichier JSON nommé couleurs.json avec les données suivantes.

["Rouge", "vert", "bleu", "jaune", "violet"]

Exécutez la commande suivante pour lire deux valeurs à partir du troisième index des couleurs.fichier json.

$ JQ '.[2: 4] 'Couleurs.json

Vous pouvez spécifier la longueur ou le démarrage de l'index pour lire les données du fichier JSON. Dans l'exemple suivant, le nombre de valeurs de données est donné uniquement. Dans ce cas, la commande lira quatre données du premier index des couleurs.json.

$ JQ '.[: 4] 'Couleurs.json

Vous ne pouvez spécifier le point de départ que sans aucune valeur de longueur dans jq la commande et la valeur peuvent être positives ou négatives. Si le point de départ est positif, l'index comptera du côté gauche de la liste et à partir de zéro. Si le point de départ est négatif, l'indice comptera du côté droit de la liste et à partir d'un. Dans l'exemple suivant, le point de départ est -3. Ainsi, les trois dernières valeurs des données afficheront.

$ JQ '.[-3:] 'Couleurs.json

Lorsque vous travaillerez avec les données JSON et que vous souhaitez analyser ou manipuler les données en fonction de vos exigences, la commande JQ vous aidera à vous faciliter la tâche.