J'ai la commande jq
suivante:
cat myFile.json | jq -r '.tickets[] | [.created_at, .id, .via.channel, .tags[]] | @csv'
Et il génère une ligne telle que:
"2016-02-02T10:00:00Z",99999,"web","tag1","tag2","tag3","tag4"
J'essaie de join
le .tags[]
array, pour que je puisse obtenir:
"2016-02-19T13:25:55Z",99999,"web","tag1,tag2,tag3,tag4"
J'ai essayé quelques choses, comme
cat myFile.json | jq -r '.tickets[] | [.created_at, .id, .via.channel, (.tags[] | join(","))] | @csv'
Mais cela donne des erreurs telles que
jq: error (at <stdin>:0): Cannot iterate over string ("tag1...)
Alors, comment puis-je rejoindre .tags[]
dans la commande ci-dessus pour qu'au lieu de champs séparés, j'obtienne une seule valeur de chaîne (contenant des valeurs de balises séparées par des virgules)?
Vous devez appeler join()
dans la liste tags
, pas les balises individuelles. Essayez avec:
jq -r '.tickets[] | [.created_at, .id, .via.channel, (.tags | join(","))] | @csv'