GNU/Linux >> Linux Esercitazione >  >> Linux

jq:comando non trovato (parser della CLI JSON)

jq è un processore JSON a riga di comando leggero e flessibile, molto simile a sed in quanto consente di suddividere, filtrare, mappare e trasformare i dati da un formato all'altro. Ad esempio, può essere utilizzato per convertire i dati JSON in CSV (valori separati da virgola) per il caricamento in un database MySQL senza colonne JSON. Puoi scaricarlo da https://stedolan.github.io/jq/ e c'è una versione online su https://jqplay.org/ per la sperimentazione. Inoltre, jq usa il parser Perl Compatible Regular Expressions (PCRE), come molti altri linguaggi. (Questo meraviglioso strumento merita di aver scritto molto di più su di esso rispetto ai semplici esempi qui presenti e leggere il manuale è un modo rapido per familiarizzare con le numerose funzionalità di questo strumento.)

Se riscontri un errore di seguito:

jq: command not found (JSON CLI Parser)

Puoi provare a installare il pacchetto sottostante secondo la tua scelta di distribuzione.

Distribuzione Comando
OS X brew install jq
Debian apt-get install jq
Ubuntu apt-get install jq
Alpino apk aggiungi jq
Arci Linux pacman -S jq
Kali Linux apt-get install jq
Fedora dnf install jq
Raspbian apt-get install jq
Docker docker esegui cmd.cat/jq jq

Senza argomenti per jq, "stamperà graziosamente" il documento JSON. Questo è molto utile per documenti estremamente complessi con molti livelli di oggetti incorporati e array difficili da visualizzare su una singola linea piatta.

Seleziona alcuni campi

In alcune occasioni, non tutti i dati in un documento JSON saranno di interesse e puoi usare jq per riformare i dati e fornire solo parti selezionate. Ad esempio:

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

Esempi di comandi jq

1. Genera un file JSON, in formato Pretty Print:

$ jq . file.json

2. Emetti tutti gli elementi dagli array (o tutte le coppie chiave-valore dagli oggetti) in un file JSON:

$ jq .[] file.json

3. Leggi gli oggetti JSON da un file in un array e invialo in output (inverso di `jq .[]`):

$ jq --slurp . file.json

4. Emetti il ​​primo elemento in un file JSON:

$ jq .[0] file.json

5. Emetti il ​​valore di una determinata chiave del primo elemento in un testo JSON da stdin:

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

6. Emetti il ​​valore di una determinata chiave di ogni elemento in un testo JSON da stdin:

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

Riepilogo

jq è un processore JSON da riga di comando. Funziona come sed per i dati JSON; puoi usarlo per filtrare, analizzare e trasformare i dati strutturati con la stessa facilità con cui sed, awk o grep ti permettono di fare con il testo non elaborato. Jq è disponibile su GitHub all'indirizzo https://stedolan.github.io/jq/. L'installazione è molto semplice; è solo un singolo binario, disponibile per Windows, macOS e Linux. Basta scaricarlo e copiarlo nella cartella disponibile sul PATH del tuo sistema per poterlo eseguire dalla shell o dalla riga di comando.


Linux
  1. gestore abbonamenti:comando non trovato

  2. dnf:comando non trovato

  3. bc:comando non trovato

  4. dpkg:comando non trovato

  5. id:comando non trovato

nc:comando non trovato

aws-shell:comando non trovato

tvservice:comando non trovato

lspci:comando non trovato

pstree:comando non trovato

ln:comando non trovato