Cómo depurar en `jq`

Algunos consejos para usar la función `debug`


jq incluye un práctico filtro debug. Úsalo mientras desarrollas las soluciones de tus ejercicios para inspeccionar los datos que en ese momento están en el pipeline de jq.

debug imprime un «array de debug» en stderr. Devuelve la entrada sin cambios. El primer elemento del array es la cadena «DEBUG:». El segundo elemento depende de cómo llames a debug.

  1. la función debug de aridad cero coloca una representación compacta de la entrada en el array de debug:

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

    produce

     ["DEBUG:",[11,22,33]]
     [
       22,
       44,
       66
     ]
    
  2. la versión de aridad uno pasa la entrada por el filtro dado:

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

    El filtro no tiene que ser una cadena. Puede ser cualquier cosa, incluso varias expresiones separadas por comas para obtener una salida de debug «de varias líneas»:

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