/ / ¿Cómo imprimo el número de línea con la salida para JQ en el archivo json - json, jq

¿Cómo imprimo el número de línea con la salida para JQ en el archivo json? Json, jq

Sé que hay una opción -n y probé muchas combinaciones pero no pude hacerlo funcionar. Me gustaría imprimir el número de línea y la longitud de cada línea para el archivo json

cat -n traffictest.json | jq ". |length"

jq -C . | cat -n traffictest.json | jq ". |length"

Respuestas

1 para la respuesta № 1

jq tiene un filtro incorporado, input_line_number, que emite el número de línea de la entrada que se está leyendo. Por ejemplo, dada esta entrada:

[1,2]

"abcd"

{"a":1,"b":1,"c":1,"d":1, "e":1}

la invocación

jq -r "(input_line_number): (length)"

rendimientos:

1: 2
3: 4
5: 5

0 para la respuesta № 2

Si solo te interesa el número de línea y la longitud, usaría awk en su lugar, por ejemplo:

awk "{ print NR, length, $0 }" traffictest.json

O si quieres mantener el resaltado de sintaxis:

paste <(jq    . traffictest.json | awk "{ print NR, length }" OFS="t") 
<(jq -C . traffictest.json)