BASH JQ -Befehl

BASH JQ -Befehl
JSON -Daten werden für verschiedene Zwecke verwendet. JSON -Daten können jedoch nicht einfach aus der JSON -Datei gelesen werden, indem Sie das Bash -Skript wie andere normale Dateien verwenden. JQ Tool wird verwendet, um dieses Problem zu lösen. JQ Befehl funktioniert wie sed Und awk Befehl und verwendet eine domänenspezifische Sprache für die Arbeit mit JSON -Daten. JQ ist kein integrierter Befehl. Sie müssen diesen Befehl also installieren, um ihn zu verwenden. Wie Sie installieren und sich bewerben können JQ Befehl zum Lesen oder Manipulieren von JSON -Daten wird in diesem Tutorial angezeigt.

JQ -Installation

Führen Sie den folgenden Befehl aus, um JQ auf Ubuntu zu installieren.

$ sudo apt-get install JQ

Lesen von JSON -Daten

Nehmen wir an, Sie haben eine JSON -Variable mit dem Namen deklariert JSondata im Terminal und laufen JQ Befehl mit dieser Variablen, um den Inhalt dieser Variablen zu drucken.

$ JSondata = '["Buch": "Php 7", "Publikation": "Apress",
"Buch": "React 16 Essentials", "Publikation": "Packt"] '
$ echo "$ jSondata" | JQ '.''

Lesen Sie JSON -Daten mit -C -Option

-c Option verwendet mit dem Befehl jq, um jedes JSON -Objekt in jeder Zeile zu drucken. Nach dem Ausführen des folgenden Befehls wird jedes Objekt der JSondata -Variablen gedruckt.

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

Lesen einer JSON -Datei

JQ -Befehl kann auch zum Lesen der JSON -Datei verwendet werden. Erstellen Sie eine JSON -Datei namens Students.JSON mit dem folgenden Inhalt, um die nächsten Befehle dieses Tutorials zu testen.

Studenten.JSON

[

"Roll": 3,
"Name": "Micheal",
"Batch": 29,
"Abteilung": "CSE"
,

"Roll": 55,
"Name": "Lisa",
"Batch": 34,
"Abteilung": "BBA"
,

"Roll": 12,
"Name": "John",
"Batch": 22,
"Abteilung": "Englisch"

]

Führen Sie den folgenden Befehl aus, um die Schüler zu lesen.JSON -Datei.

$ jq '.' Studenten.JSON

Lesen Sie die JSON -Datei mit '|' '

Sie können "|" verwenden Symbol folgendermaßen zum Lesen einer JSON -Datei.

$ CAT -Studenten.JSON | JQ '.''

Lesen von Einzelschlüsselwerten

Sie können ein bestimmtes Objekt einfach von einer JSON -Datei mithilfe verwenden JQ Befehl. In Studenten.JSON, Es gibt vier Objekte. Diese sind Roll, Name, Charge und Abteilung. Wenn Sie den Wert von lesen möchten Abteilung Taste nur aus jedem Datensatz und dann ausführen JQ Befehl auf folgende Weise.

$ jq '.[] | .Abteilungsstudenten.JSON

Mehrere Schlüssel lesen

Wenn Sie zwei oder mehr Objektwerte aus JSON -Daten lesen möchten, erwähnen Sie die Objektnamen, indem Sie Comma (,) im JQ -Befehl trennen. Der folgende Befehl holt die Werte von ab Name Und Abteilung Schlüssel.

$ jq '.[] | .Name, .Abteilungsstudenten.JSON

Entfernen Sie den Schlüssel aus JSON -Daten

JQ Der Befehl wird nicht nur zum Lesen von JSON -Daten verwendet, sondern auch zum Anzeigen von Daten durch Entfernen des jeweiligen Schlüssels. Der folgende Befehl druckt alle Schlüsselwerte von Studenten.JSON Datei durch Ausschließen Charge Taste. Karte Und del Funktion werden in verwendet JQ Befehl, die Aufgabe zu erledigen.

$ jq 'Karte (Del (.Batch)) 'Studenten.JSON

Mapping -Werte

Ohne den Schlüssel aus JSON -Daten zu löschen, können Sie die Kartenfunktion mit JQ -Befehl für verschiedene Zwecke verwenden. Numerische Werte von JSON -Daten können durch Kartenfunktion erhöht oder verringert werden. Erstellen Sie eine JSON -Datei mit dem Namen Nummer.JSON mit dem folgenden Inhalt, um die nächsten Befehle zu testen.

[40,34,12,67,45]

Führen Sie den folgenden Befehl aus, um 10 mit jedem Objektwert von hinzuzufügen Zahlen, JSON.

$ jq 'Karte (.+10) 'Zahlen.JSON

Führen Sie den folgenden Befehl aus, um 10 von jedem Objektwert von zu subtrahieren Zahlen, JSON.

$ jq 'Karte (.-10) 'Zahlen.JSON

Suchen Sie Werte nach Index und Länge

Sie können Objekte aus der JSON -Datei lesen, indem Sie den jeweiligen Index und Länge angeben. Erstellen Sie eine JSON -Datei mit dem Namen Farben.JSON mit den folgenden Daten.

["Rot", "grün", "blau", "gelb", "lila"]

Führen Sie den folgenden Befehl aus, um zwei Werte aus dem dritten Farbenindex zu lesen.JSON -Datei.

$ jq '.[2: 4] 'Farben.JSON

Sie können die Länge oder den Startindex angeben, um Daten aus der JSON -Datei zu lesen. Im folgenden Beispiel wird die Anzahl des Datenwerts nur angegeben. In diesem Fall wird in dem Befehl vier Daten aus dem ersten Farbindex gelesen.JSON.

$ jq '.[: 4] 'Farben.JSON

Sie können den Startpunkt nur ohne einen Längenwert in angeben JQ Befehl und der Wert können positiv oder negativ sein. Wenn der Startpunkt positiv ist, zählt der Index von der linken Seite der Liste und beginnt von Null. Wenn der Startpunkt negativ ist, zählt der Index von der rechten Seite der Liste und beginnt von einem. Im folgenden Beispiel beträgt der Ausgangspunkt -3. Die letzten drei Werte der Daten werden also angezeigt.

$ jq '.[-3:] 'Farben.JSON

Wenn Sie mit JSON -Daten arbeiten und Daten entsprechend Ihren Anforderungen analysieren oder manipulieren möchten, hilft Ihnen der JQ -Befehl Ihnen, Ihre Aufgabe zu vereinfachen.