jq-Tool und seine allgemeine Verwendung | JD Logistics Technology Team

In letzter Zeit habe ich mich bei der Arbeit viel mit JSON beschäftigt und jq eingehend untersucht. Die bisherige Verwendung von jq erfolgte immer auf der Ebene der JSON-Datenformatierung. Tatsächlich sind seine Fähigkeiten weitaus größer Das.
Bei der Verarbeitung von JSON-Daten müssen wir häufig Filter-, Abfrage- und Bearbeitungsvorgänge in der Befehlszeile durchführen. jq ist ein leistungsstarkes Befehlszeilen-JSON-Verarbeitungstool, mit dem wir problemlos verschiedene Vorgänge an JSON-Daten durchführen können. In diesem Artikel werden die Grundkonzepte und allgemeinen Funktionen von jq kurz vorgestellt und einige praktische Beispiele bereitgestellt.

1. Einführung in jq

jq ist ein leichter und flexibler Befehlszeilen-JSON-Prozessor. Es ermöglicht Ihnen, JSON-Daten basierend auf Schlüsseln, Werten und Array-Indizes zu extrahieren, zu filtern und zu ändern. jq hat hauptsächlich die folgenden Funktionen:

  1. Basierend auf Streaming-Verarbeitung, geeignet für große JSON-Datendateien.

  2. Bietet einen umfangreichen Satz an Operatoren und Funktionen, kompatibel mit Unix-Pipes und E/A-Umleitung.

  3. Unterstützt erweiterte Funktionen wie bedingte Filterung, Zeichenfolgenoperationen, mathematische Operationen und benutzerdefinierte Funktionen.

2. Installieren Sie jq

Auf den meisten Linux-Distributionen kann jq einfach über den Paketmanager installiert werden:

  • Auf Debian-basierten Distributionen:

    sudo apt-get install jq
    
    
  • Auf RHEL-basierten Distributionen:

    sudo yum install jq
    
    
  • Unter Arch Linux:

    sudo pacman -S jq
    
    
  • Unter macOS kann es mit Homebrew installiert werden:

    brew install jq
    
    

3. Allgemeine Verwendung von jq

Hier sind einige häufige Verwendungen von jq.

1. Attributwerte lesen

Um Eigenschaftswerte aus dem Eingabe-JSON-Objekt zu extrahieren, können Sie .Operatoren verwenden.

Beispiel: Es gibt eine sample.jsonDatei mit folgendem Namen:

{
  "name": "Alice",
  "age": 30,
  "city": "New York"
}

Namen extrahieren:

cat sample.json | jq '.name'

Ausgabeergebnis:

"Alice"

2. Array-Elemente filtern

Um Array-Elemente zu filtern, können Sie []Operatoren verwenden.

Beispiel: Es gibt eine students.jsonDatei mit folgendem Namen:

[
  {
    "name": "Alice",
    "age": 30,
    "city": "New York"
  },
  {
    "name": "Bob",
    "age": 25,
    "city": "San Francisco"
  },
  {
    "name": "Charlie",
    "age": 23,
    "city": "Los Angeles"
  }
]

Alle Namen extrahieren:

cat students.json | jq '.[].name'

Ausgabeergebnis:

"Alice"
"Bob"
"Charlie"

3. Wählen Sie bestimmte Array-Elemente aus

Wenn Sie bestimmte Elemente mit bestimmten Attributen zurückgeben möchten, können Sie Selektoren verwenden. Um beispielsweise Studierende über 25 Jahre auszuwählen:

cat students.json | jq '.[] | select(.age > 25)'

Ausgabeergebnis:

{
  "name": "Alice",
  "age": 30,
  "city": "New York"
}

4. Arrays sortieren und eindeutig machen

Sie können die Funktionen sort, sort_by()und verwenden unique, um Arrays zu bearbeiten.

Sortieren und deduplizieren Sie beispielsweise sample-array.jsonAlter aus einer Datei:

[30, 20, 25, 30, 25, 20]

Duplikate sortieren und entfernen:

cat sample-array.json | jq 'unique | sort'

Ausgabeergebnis:

[
  20,
  25,
  30
]

5. Daten ändern

Neben dem Filtern und Abfragen unterstützt jq auch das Erstellen und Ändern von Daten. Fügen Sie beispielsweise students.jsonjedem Schüler das Attribut „isActive“ hinzu in:

cat students.json | jq '.[] | {name, age, city, isActive: true}'

Ausgabeergebnis:

{
  "name": "Alice",
  "age": 30,
  "city": "New York",
  "isActive": true
}
{
  "name": "Bob",
  "age": 25,
  "city": "San Francisco",
  "isActive": true
}
{
  "name": "Charlie",
  "age": 23,
  "city": "Los Angeles",
  "isActive": true
}

4. Zusammenfassung

jq ist ein sehr leistungsfähiges Befehlszeilen-JSON-Verarbeitungstool, das verschiedene Datenbearbeitungsfunktionen unterstützt und Ihnen dabei helfen kann, JSON-Daten bequemer und effizienter zu verarbeiten. In diesem Artikel werden einige gängige JQ-Anwendungsfälle aufgeführt, aber die Funktionen von JQ sind noch viel mehr. Weitere umfangreiche Funktionen finden Sie in der offiziellen Dokumentation ( zum Anzeigen klicken ). JQ-Kenntnisse tragen dazu bei, die Fähigkeit der Befehlszeile zur Verarbeitung von JSON-Daten zu verbessern und eine bequemere Datenquelle für andere Verarbeitungs- und Analysetools bereitzustellen.

Autor: JD Logistics Zhang Tao

Quelle: JD Cloud Developer Community Ziyuanqishuo Tech Bitte geben Sie beim Nachdruck die Quelle an

Qt 6.6 ist offiziell veröffentlicht. Das Popup-Fenster auf der Lotterieseite der Gome App beleidigt seinen Gründer . Ubuntu 23.10 ist offiziell veröffentlicht. Sie können den Freitag genauso gut für ein Upgrade nutzen! RISC-V: wird nicht von einem einzelnen Unternehmen oder Land kontrolliert. Folge der Veröffentlichung von Ubuntu 23.10: ISO-Image wurde dringend „zurückgerufen“, da es Hassreden enthielt. Russische Unternehmen produzieren Computer und Server auf Basis von Loongson-Prozessoren. ChromeOS ist eine Linux-Distribution, die Google Desktop verwendet Umwelt 23-jähriger Doktorand behebt 22-jährigen „Geisterfehler“ in Firefox TiDB 7.4 veröffentlicht: offiziell kompatibel mit MySQL 8.0 Microsoft bringt Windows Terminal Canary-Version auf den Markt
{{o.name}}
{{m.name}}

Supongo que te gusta

Origin my.oschina.net/u/4090830/blog/10117969
Recomendado
Clasificación