GNU/Linux >> Znalost Linux >  >> Linux

jq:příkaz nenalezen (JSON CLI Parser)

jq je lehký a flexibilní procesor JSON příkazového řádku podobný sed v tom, že vám umožňuje dělit, filtrovat, mapovat a transformovat data z jednoho formátu do druhého. Lze jej například použít k převodu dat JSON do CSV (hodnoty oddělené čárkami) pro načtení do databáze MySQL bez sloupců JSON. Můžete si jej stáhnout z https://stedolan.github.io/jq/ a pro experimentování je k dispozici online verze na https://jqplay.org/. Navíc jq používá analyzátor Perl Compatible Regular Expressions (PCRE), stejně jako mnoho jiných jazyků. (Tento úžasný nástroj si zaslouží, aby o něm bylo napsáno mnohem více než o jednoduchých příkladech zde, a přečtení manuálu je rychlý způsob, jak se seznámit s mnoha funkcemi tohoto nástroje.)

Pokud narazíte na níže uvedenou chybu:

jq: command not found (JSON CLI Parser)

Můžete zkusit nainstalovat níže uvedený balíček podle vaší volby distribuce.

Distribuce Příkaz
OS X brew install jq
Debian apt-get install jq
Ubuntu apt-get install jq
Alpine apk přidat jq
Arch Linux pacman -S jq
Kali Linux apt-get install jq
Fedora instalace dnf jq
Raspbian apt-get install jq
Docker docker spusťte cmd.cat/jq jq

Bez argumentů pro jq „pěkně vytiskne“ dokument JSON. To je velmi užitečné pro extrémně složité dokumenty s mnoha vrstvami vložených objektů a polí, které je obtížné zobrazit na jedné rovné lince.

Vyberte určitá pole

V některých případech nebudou všechna data v dokumentu JSON zajímavá a můžete použít jq k reformě dat a poskytnout pouze vybrané části. Například:

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

Příklady příkazů jq

1. Výstup souboru JSON ve formátu hezkého tisku:

$ jq . file.json

2. Výstup všech prvků z polí (nebo všech párů klíč–hodnota z objektů) do souboru JSON:

$ jq .[] file.json

3. Načtěte objekty JSON ze souboru do pole a vytiskněte jej (inverze k `jq .[]`):

$ jq --slurp . file.json

4. Výstup prvního prvku do souboru JSON:

$ jq .[0] file.json

5. Výstup hodnoty daného klíče prvního prvku v textu JSON z stdin:

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

6. Výstup hodnoty daného klíče každého prvku v textu JSON ze stdin:

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

Shrnutí

jq je procesor JSON příkazového řádku. Funguje to jako sed pro data JSON; můžete jej použít k filtrování, analýze a transformaci strukturovaných dat se stejnou lehkostí, jakou vám umožňují sed, awk nebo grep s nezpracovaným textem. Jq je k dispozici na GitHubu na https://stedolan.github.io/jq/. Instalace je velmi jednoduchá; je to jen jeden binární soubor dostupný pro Windows, macOS a Linux. Stačí si jej stáhnout a zkopírovat do složky dostupné na vašem systémovém PATH, abyste jej mohli spouštět z shellu nebo příkazového řádku.


Linux
  1. Subscription-manager:příkaz nenalezen

  2. dnf:příkaz nenalezen

  3. bc:příkaz nenalezen

  1. dpkg:příkaz nenalezen

  2. id:příkaz nenalezen

  3. w:příkaz nenalezen

  1. ifrename:příkaz nenalezen

  2. df:příkaz nenalezen

  3. du:příkaz nenalezen