在jq中使用CSV输出时,如何将数组组合成单个字符串值?

我有以下jq命令:

cat myFile.json | jq-r'.tickets[]|[.created_在.id、.via.channel、.tags[]|@csv'

并输出一行,如:

“2016-02-02T10:00:00Z”,99999,“web”,“tag1”,“tag2”,“tag3”,“tag4”

我正在尝试加入.tags[]数组,以便获得:

“2016-02-19T13:25:55Z”,99999,“网络”,“tag1,tag2,tag3,tag4”

我试过一些方法,比如

cat myFile.json | jq-r'.tickets[]|[.created_at.id、.via.channel、(.tags[]| join(,“”)]|@csv'

但它给出了如下错误:

jq:error(at<stdin>0):无法在字符串(“tag1…”)上迭代

那么,我如何在上面的命令中加入.tags[],从而获得单个字符串值(其中包含逗号分隔的标记值),而不是单独的字段

您需要调用tags列表中的join(),而不是单个标记。请尝试:

jq-r'.tickets[]|[.在.id.via.channel创建,(.tags | join(“,”)))|@csv'

发表评论