Je suis en train de découper un tableau dans JQ où l'indice final est passé comme un argument à partir du shell (bash):JQ: tableau tranchage basé sur l'argument
end_index=7
cat obj.json | jq --arg eidx $end_index, '.arr[0:$eidx]'
Cela fonctionne comme prévu lorsque l'indice est codés en dur
cat obj.json | jq '.arr[0:7]'
mais dans l'exemple en haut, je reçois un message d'erreur
jq: error (at <stdin>:0): Start and end indices of an array slice must be numbers
Je soupçonne que ce serait peut-être à voir avec h ow jq gère la substitution de variables dans l'opérateur de tranche [:]
, mais aucune de mes tentatives pour résoudre le problème, par ex. en enfermant le nom de la variable dans les accolades .arr[0:${eidx}]
, a travaillé.
--argjson a fait le travail pour moi –