Comando Bash JQ

Comando Bash JQ
I dati JSON vengono utilizzati per vari scopi. Ma i dati JSON non possono essere letti facilmente dal file JSON utilizzando lo script bash come altri file normali. JQ Lo strumento viene utilizzato per risolvere questo problema. JQ Il comando funziona come sed E Awk comando e utilizza una lingua specifica del dominio per lavorare con i dati JSON. JQ non è un comando incorporato. Quindi, devi installare questo comando per usarlo. Come puoi installare e applicare JQ Il comando per la lettura o la manipolazione dei dati JSON è mostrato in questo tutorial.

Installazione JQ

Esegui il comando seguente per installare JQ su Ubuntu.

$ sudo apt-get Installa JQ

Leggendo i dati JSON

Supponiamo che tu abbia dichiarato una variabile JSON denominata JSONData nel terminale ed esegui JQ comanda con quella variabile per stampare il contenuto di quella variabile.

$ JSONDATA = '["libro": "php 7", "pubblicazione": "apress",
"Libro": "react 16 Essentials", "pubblicazione": "packt"] '
$ echo "$ JSONData" | jq '.'

Leggendo i dati JSON con opzione -c

-C l'opzione usa con il comando JQ per stampare ogni oggetto JSON in ogni riga. Dopo aver eseguito il seguente comando, ogni oggetto della variabile JSondata verrà stampato.

$ echo "$ JSONData" | jq -c '.[] '

Leggere un file JSON

Il comando JQ può essere utilizzato anche per la lettura del file JSON. Crea un file JSON chiamato studenti.JSON con il seguente contenuto per testare i comandi successivi di questo tutorial.

Studenti.JSON

[

"Roll": 3,
"Nome": "Micheal",
"Batch": 29,
"Dipartimento": "CSE"
,

"Roll": 55,
"Nome": "Lisa",
"Batch": 34,
"Dipartimento": "BBA"
,

"Roll": 12,
"Nome": "John",
"Batch": 22,
"Dipartimento": "Inglese"

"

Esegui il seguente comando per leggere gli studenti.file json.

$ jq '.' Studenti.JSON

Leggendo il file json con '|'

Puoi usare '|' simbolo nel modo seguente per leggere qualsiasi file JSON.

$ Cat Students.JSON | jq '.'

Leggere i valori delle chiavi singoli

È possibile leggere facilmente qualsiasi oggetto particolare da un file JSON utilizzando JQ comando. In Studenti.JSON, Ci sono quattro oggetti. Questi sono rotolare, nome, lotto e dipartimento. Se vuoi leggere il valore di Dipartimento tasto solo da ogni record e poi eseguire JQ comando nel modo seguente.

$ jq '.[] | .Studenti del dipartimento.JSON

Leggendo più chiavi

Se si desidera leggere due o più valori di oggetti dai dati JSON, menzionare i nomi degli oggetti separando la virgola (,) nel comando JQ. Il seguente comando recupererà i valori di nome E Dipartimento tasti.

$ jq '.[] | .nome, .Studenti del dipartimento.JSON

Rimuovi la chiave dai dati JSON

JQ Il comando viene utilizzato non solo per la lettura dei dati JSON, ma anche per visualizzare i dati rimuovendo la chiave particolare. Il seguente comando stamperà tutti i valori chiave di Studenti.JSON file escluso lotto chiave. carta geografica E Del la funzione sono usate in JQ comanda di fare l'attività.

$ jq 'mappa (Del (.batch)) 'studenti.JSON

Valori di mappatura

Senza eliminare la chiave dai dati JSON, è possibile utilizzare la funzione mappa con il comando JQ per vari scopi. I valori numerici dei dati JSON possono essere aumentati o ridotti dalla funzione MAP. Crea un file JSON chiamato Numero.JSON con il seguente contenuto per testare i comandi successivi.

[40,34,12,67,45]

Esegui il comando seguente per aggiungere 10 con ogni valore dell'oggetto di Numeri, json.

$ jq 'mappa (.+10) 'Numeri.JSON

Eseguire il comando seguente per sottrarre 10 da ciascun valore dell'oggetto di Numeri, json.

$ jq 'mappa (.-10) 'Numeri.JSON

Ricerca valori per indice e lunghezza

È possibile leggere gli oggetti dal file JSON specificando l'indice e la lunghezza. Crea un file JSON chiamato colori.JSON Con i seguenti dati.

["Rosso", "verde", "blu", "giallo", "viola"]

Esegui il comando seguente per leggere due valori a partire dal terzo indice dei colori.file json.

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

È possibile specificare la lunghezza o l'avvio dell'indice per leggere i dati dal file JSON. Nell'esempio seguente, il numero di valore dei dati viene fornito solo. In questo caso, il comando leggerà quattro dati dal primo indice di colori.JSON.

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

È possibile specificare il punto di partenza solo senza alcun valore di lunghezza in JQ il comando e il valore possono essere positivi o negativi. Se il punto di partenza è positivo, l'indice conta dal lato sinistro dell'elenco e a partire da zero. Se il punto di partenza è negativo, l'indice conta dal lato destro dell'elenco e a partire da uno. Nell'esempio seguente, il punto di partenza è -3. Quindi, gli ultimi tre valori dai dati verranno visualizzati.

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

Quando lavorerai con i dati JSON e desideri analizzare o manipolare i dati in base ai tuoi requisiti, il comando JQ ti aiuterà a semplificare il tuo compito.