JQ -Befehl in Linux mit Beispielen
- 1546
- 390
- Phoebe Jeorga
JSON ist ein Datenrepräsentationsformat, mit dem Daten zwischen verschiedenen Schichten einer Anwendung gespeichert und übertragen werden. Es speichert Daten in Schlüssel: Wertpaare.
Die Syntax von JSON wurde von JavaScript abgeleitet, aber sie selbst ist sprachunabhängig. Es ist mit vielen Programmiersprachen kompatibel; Diese Sprachen enthalten Code, mit dem JSON in das Programm integriert werden kann. Aber leider können wir nicht mit JSON direkt in Linux -Shell arbeiten, da es es nicht interpretieren kann. Um mit JSON in der Linux -Shell zu arbeiten, verwenden wir eine Mischung aus Werkzeugen wie JQ und SED.
In diesem Beitrag werden wir den Befehl JQ verwenden, um JSON -Daten in einer Linux -Shell zu manipulieren und mit ihnen zu arbeiten.
So installieren Sie den Befehl JQ
Der JQ -Befehl ist in einigen Linux -Verteilungen standardmäßig nicht verfügbar. Es muss in das System heruntergeladen werden, bevor es am Terminal verwendet werden kann. Sie können den JQ -Befehl wie jedes andere Paket auf Ihrem System herunterladen. Auf Ubuntu 20.04 Verwenden Sie den folgenden Befehl, um das JQ-Dienstprogramm zu installieren:
sudo apt install JQ
Ersetzen Sie einfach den Paketmanager Ihres Systems, wenn Sie eine andere Verteilung als Ubuntu ausführen.
Wenn Sie eine Verteilung wie CentOS 8 ausführen, die standardmäßig JQ enthält, erhalten Sie eine ähnliche Ausgabe wie folgt:
sudo dnf install JQ
Syntax
Jetzt können wir den Befehl jq verwenden, da er erfolgreich in unserem System installiert wurde. Schauen wir uns zunächst die Syntax des JQ -Befehls an:
JQ [Optionen] [Datei…] JQ [Optionen] --Args [Strings…] JQ [Optionen] -JsonArgs [JSON_TEXTS…]
Der JQ -Befehl kann auf viele verschiedene Arten verwendet werden. Es kann direkt in einer JSON -Datei verwendet werden und auch mit mehreren anderen Befehlen kombiniert werden, um JSON -Daten zu interpretieren. Der JQ -Befehl kann mit verschiedenen Filtern wie dem verwendet werden “."," | ",", "
oder der “.[] "
Filter, um JSON -Daten zu organisieren.
Der JQ -Befehl nimmt auch unterschiedliche Optionen als Argumente wie die --Tab
, --Strom
, --Einrückung n
, --ungelen
, und das -L Verzeichnisoption. Die Syntax des JQ -Befehls mag zunächst komplex erscheinen, aber Sie werden sich damit vertraut machen, sobald Sie den gesamten Artikel gelesen haben.
So organisieren Sie JSON -Daten mit dem JQ -Befehl
Das einfachste und am häufigsten verwendete Merkmal der JQ -Befehlsfilter. Sie werden verwendet, um JSON -Daten beim Drucken auf Standardausgabe zu organisieren und zu tun.
- In diesem Beispiel haben wir eine JSON -Datei mit dem Namen Mitarbeiter.JSON und wir müssen die Daten an die Standardausgabe ausgeben: "Arbeiter": "Name": "John Brooks", "ID": "003"
1 "Arbeiter": "Name": "John Brooks", "ID": "003" - Wir können den CAT -Befehl verwenden, um die Daten anzuzeigen:
Katzenangestellte.JSON
- Die zum CAT -Befehl zum Standardausgang gedruckten Daten sind unorganisiert und chaotisch. Wir können diese Daten mit dem Befehl JQ zusammen mit dem organisieren
''.''
Filter:JQ '.' Mitarbeiter.JSON
Jetzt sind die Daten viel organisierter, farbenfroher und leichter zu verstehen geworden. Dieser Filter ist besonders beim Zugriff auf Daten von APIs erforderlich. Die in APIs gespeicherten Daten können sehr unorganisiert und verwirrend sein.
So greifen Sie mit dem Befehl JQ auf eine Eigenschaft zu
Der .Feld
Filter zusammen mit dem JQ -Befehl kann verwendet werden, um Objekteigenschaften in der Shell zuzugreifen.
- Wenn wir nur auf die Standardausgabe auf eine einzelne Eigenschaft zugreifen und drucken möchten, können wir die verwenden
.Feld
Operator. E.G Zugriff auf die Eigenschaft des Arbeitnehmers können wir diesen Befehl verwenden:JQ '.Mitarbeiter der Arbeitnehmer.JSON
- Wir können auch auf die in der Eigenschaft vorhandenen Elemente zugreifen, indem wir die verwenden
.Feld
Operator. Um auf den Namen des Namens in der Eigenschaft des Arbeitnehmers zuzugreifen, werden wir verwenden:JQ '.Arbeitskräfte.Name 'Angestellter.JSON
So greifen Sie mit dem Befehl JQ auf ein Array -Element zu
Wir können auch auf die in einem Array in einer JSON -Datei vorhandenen Elemente auf die Elemente zugreifen und ausgeben .[]
Operator. In diesem Beispiel werden wir unsere JSON -Datei so ändern, dass sie so aussieht:
1 | ["Name": "John Brooks", "ID": "003", "Name": "Randy Park", "ID": "053", "Name": "Todd Gray", "," ID ":" 009 "] |
- Um alle in der JSON -Datei vorhandenen Arrays auszugeben, werden wir den unten angegebenen Befehl ausführen:
JQ '.[]' Mitarbeiter.JSON
- Um nur das zweite Array auszugeben, können wir den oben gegebenen Befehl auf folgende Weise ändern:
JQ '.[1] Angestellter.JSON
- Denken Sie daran, dass das Array mit beginnt 0
Wir können auch auf die im Array vorhandenen Eigenschaften zugreifen, indem wir die verwenden .Feldbetreiber. E.G Wenn wir im dritten Array auf die Eigenschaft des Namens zugreifen möchten, führen wir den folgenden Befehl aus:
JQ '.[2].Name 'Angestellter.JSON
- In ähnlicher Weise können wir diesen Befehl ausführen, um auf alle Namenseigenschaften in Arrays zuzugreifen:
JQ '.[].Name 'Angestellter.JSON
Abschluss
Der Befehl jq wird verwendet, um JSON -Daten in ein lesbareres Format umzuwandeln und sie auf die Standardausgabe unter Linux auszudrucken. Der JQ -Befehl basiert auf Filtern.
In dieser Anleitung haben wir gelernt, den Befehl JQ zu verwenden, um JSON-Daten zu organisieren und zu filtern.