次のjq
コマンドがあります。
cat myFile.json | jq -r '.tickets[] | [.created_at, .id, .via.channel, .tags[]] | @csv'
そして、次のような行を出力します。
"2016-02-02T10:00:00Z",99999,"web","tag1","tag2","tag3","tag4"
join
.tags[]
配列を取得しようとしています。
"2016-02-19T13:25:55Z",99999,"web","tag1,tag2,tag3,tag4"
私はいくつかのことを試しました
cat myFile.json | jq -r '.tickets[] | [.created_at, .id, .via.channel, (.tags[] | join(","))] | @csv'
しかし、それは次のようなエラーを与えます
jq: error (at <stdin>:0): Cannot iterate over string ("tag1...)
では、上記のコマンドで.tags[]
を結合して、個別のフィールドではなく単一の文字列値(コンマ区切りのタグ値を含む)を取得するにはどうすればよいですか?
個々のタグではなく、tags
リストでjoin()
を呼び出す必要があります。試してみてください:
jq -r '.tickets[] | [.created_at, .id, .via.channel, (.tags | join(","))] | @csv'