2017-02-11 6 views
3

Ma requête semble triviale mais je n'ai pas trouvé de moyen de le faire. Je l'ai en entrée un tableau d'objets JSON:Comment utiliser jq pour sortir JSONL (un objet JSON indépendant par ligne)

[ 
    { 
     "foo": 1, 
     "bar": 2 
    }, 
    { 
     "foo": 3, 
     "bar": 4 
    }, 
    (...) 
] 

et je veux que la sortie de la version JSONL du même, alias un objet par ligne, pas un tableau:

{ "foo": 1, "bar": 2 } 
    { "foo": 3, "bar": 4 } 
    (...) 

C'est pas même que l'utilisation --compact-output, car cela préserver le tableau et me donner:

[ { "foo": 1, "bar": 2 }, { "foo": 3, "bar": 4 }, (...) ] 

Merci à l'avance.

Répondre

-2

Fonder: il est

map(tostring) | reduce .[] as $item (""; . + $item + "\n") 

Vous devez également utiliser --raw-output.

5

La réponse à la question initiale est d'utiliser [] avec -c:.

$ jq -c '.[]'