Arkipäivän jq-suodattimet ryhmiteltynä tehtävän mukaan: arvoon käsiksi pääseminen, suodattaminen ja valitseminen, kokoelmien käsittely, arvojen ja merkkijonojen muuntaminen, uuden objektin tai taulukon muotoilu, polkujen päivittäminen paikallaan, haarautuminen logiikalla ja edistynyt laskostus sekä komentoriviliput, jotka muovaavat syötettä ja tulostetta. Jokainen rivi parittaa suodattimen sen tuottamaan tulokseen.
jq on suodatin: se lukee JSON:ia stdin:stä, ajaa putkella erotettujen lausekkeiden putken ja kirjoittaa JSON:ia stdout:iin. Piste on nykyinen arvo; kaikki rakentuu sen varaan. Nopein tapa oppia on syöttää oikeaa dataa alla olevien reseptien läpi ja katsoa tulostetta. Aja ne muodossa jq 'suodatin' tiedosto.json tai curl ... | jq 'suodatin'.
Viitetaulukko · 65 merkintää
jq-reseptitExplained
65 of 65 rows
Pääsy
Koko syöte tulostettuna kauniisti.
Arvo avaimesta tai sisäkkäisistä avaimista.
Arvo avaimesta, jonka nimessä on erikoismerkkejä.
Taulukon ensimmäinen alkio (negatiivinen laskee lopusta).
Taulukon jokainen alkio tai objektin jokainen arvo omalla rivillään.
Avaimen arvo tai null ilman virhettä, kun avain puuttuu.
Suodatus ja valinta
Syöte muuttumattomana, kun cond on tosi, muuten ei mitään.
Soveltaa expr:ää taulukon jokaiseen alkioon ja kerää tulokset.
Objektin lajitellut avainnimet tai arvot taulukkona.
Taulukon tai merkkijonon pituus tai objektin avainten määrä.
Vain alkiot, joiden ikä on yli 18, yhtenä taulukkona.
Kokoelmat
Tosi, kun vähintään yksi tai kun jokainen alkio on truthy tai läpäisee suodattimen.
Tosi, kun avain k on olemassa objektissa; in ajaa saman testin avaimen puolelta.
Ensimmäinen alkio, viimeinen tai vain f:n n ensimmäistä tulosta.
Taulukon pienin tai suurin arvo.
Luvut 0:sta ylös n:ään, kukin omana tuloksenaan.
Sisäkkäiset taulukot litistettyinä yhdeksi tasaiseksi taulukoksi.
Tosi, kun x esiintyy jossakin syötteen sisällä; inside kääntää roolit.
Soveltaa f:ää jokaiseen arvoon alhaalta ylös ja rakentaa sitten koko syötteen uudelleen.
Muuntaminen
Taulukko, jossa vain jokaisen alkion price-kenttä.
Numerotaulukon summa tai objektitaulukon yhdistelmä.
Muuntaa arvon merkkijonoksi tai numeerisen merkkijonon numeroksi.
Koodaa syötteen JSON-merkkijonoksi tai base64:ksi.
Merkkijono pienillä kirjaimilla.
Merkkijonot
Merkkijono, johon expr:n arvo on liitetty tekstiin.
Korvaa jokaisen osuman tai vain ensimmäisen merkkijonolla s.
Pilkkoo merkkijonon taulukoksi erottimen kohdalta tai liittää taulukon yhdeksi merkkijonoksi.
Testaa merkkijonoa kaavaa vastaan tai nostaa esiin osumat ja nimetyt ryhmät.
Poistaa etuliitteen tai loppuliitteen vain, kun se on läsnä.
Tosi tai epätosi: merkkijono alkaa tai päättyy merkkijonoon s.
Merkkijono isoilla kirjaimilla.
Taulukko koodattuna CSV-riviksi, TSV-riviksi tai lainatuiksi komentoriviargumenteiksi.
Uudelleenmuotoilu
Uusi objekti, jossa vain syötteen id- ja name-kentät.
Taulukko jokaisen alkion nimestä.
Taulukko {key, value} -objekteja objektista.
Objekti {key, value} -objektien taulukosta.
Alkiot ryhmiteltynä taulukoihin cat-kentän mukaan.
Järjestää kentän mukaan tai säilyttää yhden alkion kutakin erillistä id:tä kohti.
Päivitys ja polut
Päivittää avaimen arvon suorittamalla sille f:n.
Korvaa avaimen arvolla v.
Lisää n count-arvoon paikallaan.
Lukee, kirjoittaa tai poistaa arvoja taulukoina annetuista poluista.
Ohjaus ja logiikka
a, kun c on tosi, muuten b, elif lisää haaroja.
Ajaa f:n ja ajaa g:n virheviestillä, kun f epäonnistuu.
Pysähtyy virheeseen, joka kantaa msg:ää, ellei try ota sitä kiinni.
Ei lainkaan tulosta; haara katoaa yksinkertaisesti tuloksista.
Yhdistää tosi- ja epätosi-arvoja tai kääntää yhden.
Edistynyt
Laskostaa koko taulukon yhdeksi juoksevaksi summaksi.
Kuten reduce, mutta emittoi tilan jokaisen vaiheen jälkeen, ei vain viimeisen.
Seuraava syöte tai kaikki jäljellä olevat syötteet vedettynä suodattimen keskellä.
Arvo JSON-tekstinä tai JSON-teksti jäsennettynä takaisin arvoksi.
Base64-teksti dekoodattuna takaisin alkuperäiseksi merkkijonoksi.
Sijoitus rakenteen syvyyteen, luoden puuttuvat tasot matkan varrelle.
a, jos se ei ole null tai epätosi, muuten b (oletusarvo).
Syöte yhdellä avaimella poistettuna.
Jokainen polku syötteen sisällä avainten taulukkona, ylhäältä alas.
Muuttujat ja CLI
Määrittelee $name shell-merkkijonona, käytettävissä suodattimen sisällä.
Määrittelee $name raakasta JSON:ista lukuja, booleaneja, taulukoita tai objekteja varten.
Määrittelee $name JSON-tiedoston koko sisältönä.
Tulostaa merkkijonotulokset raakana, ilman lainausmerkkejä tai escapeja.
Tulostaa jokaisen tuloksen tiiviisti yhdellä rivillä ilman sisennystä.
Ajaa suodattimen kerran null:lla, rakentaakseen tuloksen tyhjästä.
Lukee koko syötteen yhdeksi taulukoksi ennen suodattimen ajoa.
Asettaa poistumiskoodin viimeisen tuloksen perusteella, jotta shell-skriptit voivat testata tuloksen.
Ympäristömuuttujan arvo, luettuna suodattimen sisällä.