Skip to content

jq receptek elmagyarázva

A hétköznapokban használt jq szűrők, feladat szerint csoportosítva: érték elérése, szűrés és kiválasztás, kollekciók kezelése, értékek és sztringek átalakítása, új objektummá vagy tömbbé formázás, útvonalak helyben frissítése, elágaztatás logikával, haladó redukció, valamint a bemenetet és kimenetet formáló parancssori kapcsolók. Minden sor a szűrőt párosítja az eredménnyel, amelyet produkál.

A jq egy szűrő: JSON-t olvas a stdinről, pipe-okkal elválasztott kifejezésekből álló futtat, és JSON-t ír a stdoutra. A pont az aktuális érték; minden erre épül. A leggyorsabb tanulási mód: valós adatot átvezetni az alábbi recepteken, és figyelni a kimenetet. Futtatás: jq 'szűrő' fájl.json vagy curl ... | jq 'szűrő'.

Referenciatáblázat · 65 bejegyzés
65 of 65 rows
Elérés
A teljes bemenet, szép nyomtatásban.
Egy kulcs értéke, vagy egymásba ágyazott kulcsoké.
Olyan kulcs értéke, amelynek neve speciális karaktereket tartalmaz.
Egy tömb első eleme (a negatív a végéről számol).
Egy tömb minden eleme, vagy egy objektum minden értéke, külön sorban.
A kulcs értéke, vagy null, hiba nélkül, ha a kulcs hiányzik.
Szűrés és kiválasztás
A bemenet változatlanul, ha a feltétel igaz, különben semmi.
A kifejezés alkalmazása egy tömb minden elemére, az eredmények összegyűjtésével.
Az objektum rendezett kulcsnevei, vagy értékei tömbként.
Egy tömb vagy sztring hossza, vagy egy objektum kulcsainak száma.
Csak azok az elemek, amelyek kora nagyobb 18-nál, egy tömbben.
Kollekciók
Igaz, ha legalább egy elem, vagy ha az összes elem truthy vagy átmegy egy szűrőn.
Igaz, ha a k kulcs létezik az objektumban; az in ugyanezt a tesztet a kulcs oldaláról futtatja.
Az első elem, az utolsó, vagy csak az f első n kimenete.
A legkisebb, illetve legnagyobb érték egy tömbben.
A számok 0-tól n-ig, mindegyik saját kimenetként.
Egymásba ágyazott tömbök egyetlen lapos tömbbé olvasztva.
Igaz, ha x előfordul valahol a bemenetben; az inside megfordítja a szerepeket.
Alulról felfelé alkalmazza az f-et minden értékre, majd újraépíti a teljes bemenetet.
Átalakítás
Csak az egyes elemek price mezőjéből álló tömb.
Számok tömbjének összege, vagy objektumok tömbjének egyesítése.
Érték sztringgé alakítása, vagy numerikus sztring számmá.
A bemenet kódolása JSON sztringként vagy base64-ként.
Kisbetűs sztring.
Sztringek
Sztring, amelybe az expr értéke be van fűzve a szövegbe.
A minta minden előfordulásának, vagy csak az elsőnek cseréje s-re.
Sztring tömbbé bontása egy elválasztónál, vagy tömb egyetlen sztringgé ragasztása.
Sztring tesztelése mintával, vagy az illeszkedések és nevezett csoportok kinyerése.
Előtag, illetve utótag levágása, csak ha jelen van.
Igaz vagy hamis: a sztring s-sel kezdődik, illetve végződik.
Nagybetűs sztring.
Egy tömb kódolva CSV-sorként, TSV-sorként vagy idézett shell-argumentumokként.
Újraformázás
Új objektum csak a bemenet id és name mezőivel.
Minden elem nevéből álló tömb.
{key, value} objektumok tömbje egy objektumból.
Objektum, {key, value} objektumok tömbjéből építve.
Elemek altömbökbe csoportosítva a cat mező szerint.
Rendezés mező szerint, vagy egy elem megtartása minden eltérő id-hez.
Frissítés és útvonalak
A kulcs értékének frissítése az f lefuttatásával rajta.
A kulcs értékének felülírása v-re.
n hozzáadása a count értékéhez, helyben.
Értékek olvasása, írása vagy törlése tömbként megadott útvonalakon.
Vezérlés és logika
a, ha c igaz, különben b, további ágakhoz elif.
f futtatása, és g futtatása a hibaüzenettel, ha f elbukik.
Leállás msg-t hordozó hibával, hacsak egy try el nem kapja.
Egyáltalán nincs kimenet; az ág egyszerűen eltűnik az eredményekből.
Igaz és hamis értékek kombinálása, vagy egy megfordítása.
Haladó
A teljes tömb behajtása egyetlen futó összeggé.
Mint a reduce, de minden lépés után kibocsátja az állapotot, nem csak a végén.
A következő bemenet, vagy az összes hátralévő bemenet, a szűrő közepén beszúrva.
Egy érték JSON-szövegként, vagy JSON-szöveg értékké visszaelemezve.
Base64 szöveg visszafejtve az eredeti sztringgé.
Értékadás a struktúra mélyén, a hiányzó szintek menet közbeni létrehozásával.
a, ha nem null vagy hamis, különben b (alapértelmezett érték).
A bemenet egy kulcs eltávolítva.
A bemenet minden útvonala kulcsok tömbjeként, fentről lefelé.
Változók és CLI
$name definiálása shell-sztringként, használható a szűrőn belül.
$name definiálása nyers JSON-ból számokhoz, logikai értékekhez, tömbökhöz vagy objektumokhoz.
$name definiálása egy JSON fájl teljes tartalmaként.
Sztring eredmények nyers nyomtatása, idézőjelek és escape nélkül.
Minden eredmény kompakt nyomtatása egy sorban, behúzás nélkül.
A szűrő egyszeri futtatása null-ra, a kimenet semmiből való építéséhez.
A teljes bemenet beolvasása egy tömbbe, mielőtt a szűrő fut.
A kilépési kód beállítása az utolsó kimenetből, hogy a shell szkriptek tesztelhessék az eredményt.
Egy környezeti változó értéke, a szűrőn belül olvasva.