De jq-filters die je dagelijks gebruikt, gegroepeerd per klus: een waarde bereiken, filteren en selecteren, met collecties werken, waarden en strings transformeren, herschikken naar een nieuw object of array, paden in-place bijwerken, vertakken op logica en geavanceerde reductie afhandelen, plus de commandoregelvlaggen die invoer en uitvoer vormgeven. Elke regel koppelt het filter aan het resultaat dat het oplevert.
jq is een filter: het leest JSON van stdin, voert een pijplijn van expressies uit gescheiden door pipes, en schrijft JSON naar stdout. De punt is de huidige waarde; alles bouwt daarop voort. De snelste manier om te leren is echte data door de recepten hieronder te pipen en de uitvoer te bekijken. Voer ze uit als jq 'filter' bestand.json of curl ... | jq 'filter'.
Referentietabel · 65 items
jq-receptenExplained
65 of 65 rows
Toegang
De volledige invoer, netjes geformatteerd.
De waarde bij een key, of geneste keys.
De waarde bij een key waarvan de naam speciale tekens bevat.
Het eerste element van een array (negatief telt vanaf het einde).
Elk element van een array, of elke waarde van een object, op een eigen regel.
De waarde bij een key, of null, zonder fout wanneer de key ontbreekt.
Filteren en selecteren
De invoer ongewijzigd wanneer cond waar is, anders niets.
Pas expr toe op elk element van een array en verzamel de resultaten.
De gesorteerde keynamen, of de waarden, van een object als array.
De lengte van een array of string, of het aantal keys in een object.
Alleen de elementen waarvan age groter is dan 18, als één array.
Collecties
Waar als minstens één element, of elk element, truthy is of door een filter komt.
Waar wanneer key k in het object bestaat; in voert dezelfde test uit vanuit de key.
Het eerste element, het laatste, of alleen de eerste n uitvoeren van f.
De kleinste, of grootste, waarde in een array.
De getallen van 0 tot n, elk als eigen uitvoer.
Geneste arrays samengevoegd tot één platte array.
Waar wanneer x ergens binnen de invoer voorkomt; inside draait de rollen om.
Past f toe op elke waarde van onderaf omhoog en bouwt daarna de hele invoer weer op.
Transformeren
Een array met alleen het price-veld van elk element.
De som van een array getallen, of de samenvoeging van een array objecten.
Dwing een waarde naar een string, of een numerieke string naar een getal.
Codeer de invoer als JSON-string of base64.
Een string in kleine letters.
Strings
Een string met de waarde van expr in de tekst verweven.
Vervang elke overeenkomst van het patroon, of alleen de eerste, door s.
Splits een string in een array op een scheidingsteken, of lijm een array tot één string.
Toets een string tegen een patroon, of haal de overeenkomsten en benoemde groepen eruit.
Strip een prefix, of een suffix, alleen als die aanwezig is.
Waar of onwaar: de string begint, of eindigt, met s.
Een string in hoofdletters.
Een array gecodeerd als CSV-rij, TSV-rij, of als shell-argumenten tussen aanhalingstekens.
Herschikken
Een nieuw object met alleen de velden id en name van de invoer.
Een array met de name van elk item.
Een array van {key, value}-objecten uit een object.
Een object gebouwd uit een array van {key, value}-objecten.
Elementen gegroepeerd in subarrays op hun cat-veld.
Sorteer op een veld, of behoud één element per unieke id.
Bijwerken en paden
Werkt de waarde bij de key bij door er f op uit te voeren.
Overschrijft de waarde bij de key met v.
Telt n op bij de waarde van count, in-place.
Lees, schrijf of verwijder waarden bij paden die als arrays zijn gegeven.
Besturing en logica
a wanneer c waar is, anders b, met elif voor meer vertakkingen.
Voer f uit, en voer g uit met de foutmelding in de plaats wanneer f faalt.
Stopt met een fout die msg draagt, tenzij een try hem opvangt.
Helemaal geen uitvoer; die tak verdwijnt gewoon uit de resultaten.
Combineer waar en onwaar, of keer er één om.
Geavanceerd
Vouwt de hele array samen tot één doorlopend totaal.
Zoals reduce, maar geeft de status na elke stap, niet alleen de laatste.
De volgende invoer, of alle resterende invoer, midden in het filter binnengehaald.
Een waarde als JSON-tekst, of JSON-tekst terug geparseerd naar een waarde.
Base64-tekst terug gedecodeerd naar de oorspronkelijke string.
Toewijzing diep in de structuur, waarbij ontbrekende niveaus onderweg worden aangemaakt.
a als het niet null of onwaar is, anders b (een standaardwaarde).
De invoer met één key verwijderd.
Elk pad in de invoer als een array van keys, van boven naar beneden.
Variabelen en CLI
Definieer $name als een shellstring, bruikbaar binnen het filter.
Definieer $name vanuit rauwe JSON, voor getallen, booleans, arrays of objecten.
Definieer $name als de volledige inhoud van een JSON-bestand.
Druk stringresultaten rauw af, zonder aanhalingstekens of escapes.
Druk elk resultaat compact op één regel af, zonder inspringing.
Voer het filter één keer uit op null, om uitvoer uit het niets te bouwen.
Lees alle invoer in één array in voordat het filter draait.
Zet de exitcode vanuit de laatste uitvoer, zodat shellscripts het resultaat kunnen toetsen.
De waarde van een omgevingsvariabele, gelezen binnen het filter.