GNU/Linux >> LINUX-Kenntnisse >  >> Linux

jq:Befehl nicht gefunden (JSON CLI Parser)

jq ist ein leichtgewichtiger und flexibler JSON-Befehlszeilenprozessor, der sed sehr ähnlich ist, da er es Ihnen ermöglicht, Daten von einem Format in ein anderes aufzuteilen, zu filtern, zuzuordnen und zu transformieren. Beispielsweise kann es verwendet werden, um JSON-Daten in CSV (comma-separated values) zu konvertieren, um sie in eine MySQL-Datenbank ohne JSON-Spalten zu laden. Sie können es von https://stedolan.github.io/jq/ herunterladen, und es gibt eine Online-Version unter https://jqplay.org/ zum Experimentieren. Außerdem verwendet jq wie viele andere Sprachen den Parser für Perl-kompatible reguläre Ausdrücke (PCRE). (Dieses wunderbare Tool verdient es, dass viel mehr darüber geschrieben wird als die einfachen Beispiele hier, und das Lesen des Handbuchs ist ein schneller Weg, um sich mit den vielen Funktionen dieses Tools vertraut zu machen.)

Wenn Sie auf den folgenden Fehler stoßen:

jq: command not found (JSON CLI Parser)

Sie können versuchen, das folgende Paket gemäß Ihrer Wahl der Distribution zu installieren.

Verteilung Befehl
OS X brew install jq
Debian apt-get install jq
Ubuntu apt-get install jq
Alpin apk jq hinzufügen
Arch Linux pacman -S jq
Kali-Linux apt-get install jq
Fedora dnf install jq
Raspbian apt-get install jq
Docker docker laufen cmd.cat/jq jq

Ohne Argumente für jq wird das JSON-Dokument „hübsch gedruckt“. Dies ist sehr praktisch für extrem komplexe Dokumente mit vielen Ebenen eingebetteter Objekte und Arrays, die auf einer einzigen flachen Linie schwer zu sehen sind.

Bestimmte Felder auswählen

In einigen Fällen sind nicht alle Daten in einem JSON-Dokument von Interesse, und Sie können jq verwenden, um die Daten zu reformieren und nur ausgewählte Teile bereitzustellen. Zum Beispiel:

$ jq '{city, state, id}' myfile.json

jq-Befehlsbeispiele

1. Geben Sie eine JSON-Datei im Pretty-Print-Format aus:

$ jq . file.json

2. Alle Elemente aus Arrays (oder alle Schlüssel-Wert-Paare aus Objekten) in einer JSON-Datei ausgeben:

$ jq .[] file.json

3. JSON-Objekte aus einer Datei in ein Array einlesen und ausgeben (Umkehrung von `jq .[]`):

$ jq --slurp . file.json

4. Geben Sie das erste Element in einer JSON-Datei aus:

$ jq .[0] file.json

5. Geben Sie den Wert eines gegebenen Schlüssels des ersten Elements in einem JSON-Text von stdin:

aus
$ cat file.json | jq .[0].key_name

6. Geben Sie den Wert eines bestimmten Schlüssels jedes Elements in einem JSON-Text von stdin:

aus
$ cat file.json | jq 'map(.key_name)'

Zusammenfassung

jq ist ein Befehlszeilen-JSON-Prozessor. Es funktioniert wie sed für JSON-Daten; Sie können es verwenden, um strukturierte Daten mit der gleichen Leichtigkeit zu filtern, zu parsen und umzuwandeln, wie Sie es mit sed, awk oder grep mit Rohtext tun können. Jq ist auf GitHub unter https://stedolan.github.io/jq/ verfügbar. Die Installation ist sehr einfach; Es ist nur eine einzige Binärdatei, die für Windows, macOS und Linux verfügbar ist. Laden Sie es einfach herunter und kopieren Sie es in den Ordner, der auf Ihrem System PATH verfügbar ist, um es über die Shell oder die Befehlszeile ausführen zu können.


Linux
  1. Subscription-Manager:Befehl nicht gefunden

  2. dnf:Befehl nicht gefunden

  3. bc:Befehl nicht gefunden

  4. dpkg:Befehl nicht gefunden

  5. id:Befehl nicht gefunden

nc:Befehl nicht gefunden

aws-shell:Befehl nicht gefunden

tvservice:Befehl nicht gefunden

lspci:Befehl nicht gefunden

pstree:Befehl nicht gefunden

ln:Befehl nicht gefunden