jq-filterene du bruker hver dag, gruppert etter jobb: hente ut en verdi, filtrere og velge, jobbe med samlinger, transformere verdier og strenger, omforme til et nytt objekt eller en ny tabell, oppdatere stier på stedet, forgrene på logikk og håndtere avansert reduksjon, i tillegg til kommandolinjeflaggene som styrer inn- og utdata. Hver rad kobler filteret med resultatet det gir.
jq er et filter: det leser JSON fra stdin, kjører en rørledning av uttrykk atskilt med pipe, og skriver JSON til stdout. Punktumet er den gjeldende verdien; alt bygges på det. Raskeste måte å lære på er å sende ekte data gjennom oppskriftene nedenfor og se på utdataene. Kjør dem som jq 'filter' fil.json eller curl ... | jq 'filter'.
Referansetabell · 65 oppføringer
jq-oppskrifterExplained
65 of 65 rows
Tilgang
Hele inndataene, pent formatert.
Verdien ved en nøkkel, eller nestede nøkler.
Verdien ved en nøkkel hvis navn inneholder spesialtegn.
Det første elementet i en tabell (negativt teller fra slutten).
Hvert element i en tabell, eller hver verdi i et objekt, på sin egen linje.
Verdien ved nøkkelen, eller null, uten feil når nøkkelen mangler.
Filtrer og velg
Inndataene uendret når cond er sann, ellers ingenting.
Bruk expr på hvert element i en tabell og samle resultatene.
De sorterte nøkkelnavnene, eller verdiene, i et objekt som en tabell.
Lengden på en tabell eller streng, eller antall nøkler i et objekt.
Bare elementene der age er større enn 18, som én tabell.
Samlinger
Sann når minst ett, eller når alle, elementer er sanne eller passer et filter.
Sann når nøkkelen k finnes i objektet; in kjører samme test fra nøkkelens side.
Det første elementet, det siste, eller bare de første n utdataene fra f.
Den minste eller største verdien i en tabell.
Tallene fra 0 opp til n, hvert som sin egen utdata.
Nestede tabeller slått sammen til én flat tabell.
Sann når x forekommer et sted i inndataene; inside snur rollene.
Bruker f på hver verdi fra bunnen og opp, og bygger deretter hele inndataene på nytt.
Transformer
En tabell med bare price-feltet fra hvert element.
Summen av en tabell med tall, eller sammenslåingen av en tabell med objekter.
Tving en verdi til en streng, eller en numerisk streng til et tall.
Koder inndataene som en JSON-streng eller base64.
En streng med små bokstaver.
Strenger
En streng der verdien av expr er flettet inn i teksten.
Erstatt hvert treff av mønsteret, eller bare det første, med s.
Del en streng i en tabell på en separator, eller lim en tabell sammen til én streng.
Test en streng mot et mønster, eller hent ut treffene og de navngitte gruppene.
Fjern et prefiks, eller et suffiks, bare når det finnes.
Sann eller usann: strengen begynner, eller slutter, med s.
En streng med store bokstaver.
En tabell kodet som en CSV-rad, en TSV-rad eller siterte shell-argumenter.
Omform
Et nytt objekt med bare id- og name-feltene fra inndataene.
En tabell med navnet til hvert element.
En tabell med {key, value}-objekter fra et objekt.
Et objekt bygget fra en tabell med {key, value}-objekter.
Elementer gruppert i deltabeller etter cat-feltet deres.
Sorter etter et felt, eller behold ett element per distinkt id.
Oppdatering og stier
Oppdaterer verdien ved nøkkelen ved å kjøre f på den.
Overskriver verdien ved nøkkelen med v.
Legger n til verdien ved count, på stedet.
Les, skriv eller slett verdier ved stier gitt som tabeller.
Kontroll og logikk
a når c er sann, b ellers, med elif for flere forgreninger.
Kjører f, og kjører g med feilmeldingen i stedet når f feiler.
Stopper med en feil som bærer msg, med mindre en try fanger den.
Ingen utdata i det hele tatt; den grenen forsvinner rett og slett fra resultatene.
Kombiner sanne og usanne verdier, eller snu én.
Avansert
Bretter hele tabellen sammen til én løpende sum.
Som reduce, men sender ut tilstanden etter hvert steg, ikke bare den siste.
Den neste inndataen, eller alle gjenværende indataer, trukket inn midt i filteret.
En verdi som JSON-tekst, eller JSON-tekst tolket tilbake til en verdi.
Base64-tekst dekodet tilbake til den opprinnelige strengen.
Tildeling dypt i strukturen, som oppretter manglende nivåer underveis.
a hvis den ikke er null eller usann, ellers b (en standardverdi).
Inndataene med én nøkkel fjernet.
Hver sti i inndataene som en tabell av nøkler, ovenfra og ned.
Variabler og CLI
Definerer $name som en shell-streng, brukbar inne i filteret.
Definerer $name fra rå JSON, for tall, booleske verdier, tabeller eller objekter.
Definerer $name som hele innholdet i en JSON-fil.
Skriver ut strengresultater rått, uten anførselstegn eller escape.
Skriver hvert resultat kompakt på én linje, uten innrykk.
Kjører filteret én gang på null, for å bygge utdata fra ingenting.
Leser hele inndataene inn i én tabell før filteret kjører.
Setter exitkoden fra den siste utdataen, slik at shell-skripter kan teste resultatet.
Verdien av en miljøvariabel, lest inne i filteret.