Hogyan debugolj `jq`-ban?

Néhány tipp a `debug` függvény használatához


A jq-hoz tartozik egy hasznos debug szűrő. Használd, miközben a feladataid megoldásait fejleszted, hogy megnézd, milyen adatok vannak éppen a jq folyamatában.

A debug egy „debug tömböt" ír a stderr-re. A bemenetet változatlanul adja ki. A tömb első eleme a „DEBUG:" string. A második elem attól függ, hogyan hívod meg a debug-ot.

  1. a nulla argumentumú debug függvény a bemenet tömör reprezentációját írja a debug tömbbe:

    jq -n '[11, 22, 33] | debug | map(. * 2)'
    

    a kimenete:

     ["DEBUG:",[11,22,33]]
     [
       22,
       44,
       66
     ]
    
  2. az egy argumentumú változat a megadott szűrőn vezeti át a bemenetet:

    jq -n '[11, 22, 33] | debug("length: \(length), last: \(.[-1])") | map(. * 2)'
    
     ["DEBUG:","length: 3, last: 33"]
     [
       22,
       44,
       66
     ]
    

    A szűrőnek nem kell stringnek lennie. Bármi lehet, akár több vesszővel elválasztott kifejezés is, amelyek „többsoros" debug kimenetet adnak:

    jq -n '[11, 22, 33] as $a | 44 | debug("I am here:", $a, .)'
    
    ["DEBUG:","I am here:"]
    ["DEBUG:",[11,22,33]]
    ["DEBUG:",44]
    44