jq-如何将数组转换为.gitlab-ci.yml文件中以逗号分隔的字符串列表

jq-如何将数组转换为.gitlab-ci.yml文件中以逗号分隔的字符串列表,gitlab,jq,Gitlab,Jq,我正试图通过jq实现此输入的转换: [ "10.149.46", "10.149.35", "10.149.45" ] 要查看类似字符串列表的内容,请参见以下内容: "10.149.46","10.149.35","10.149.45" 当我试图实现这一点并将其存储在.gitlab ci.yml中的变量中时,老实说,任何替代方案都将受到欢迎,不一定使用jq 为了更清楚 值以如下格式存储在文件sourcefile.js

我正试图通过jq实现此输入的转换:

    [
         "10.149.46",
         "10.149.35",
         "10.149.45"
       ]
要查看类似字符串列表的内容,请参见以下内容:

"10.149.46","10.149.35","10.149.45"
当我试图实现这一点并将其存储在
.gitlab ci.yml
中的变量中时,老实说,任何替代方案都将受到欢迎,不一定使用
jq

为了更清楚

值以如下格式存储在文件
sourcefile.json
和字段
myfield
下:

  {
  "myfield": [
         "10.149.46",
         "10.149.35",
         "10.149.45"
  ],
  "otherfield": "othervalue"
}

明白了,感谢@oguzismail为我们指明了正确的方向

以下是对我有效的两种方法:

  • 使用
    jq@csv

  • 使用
    jq-tostring

你试过什么?JQ的手册页列出了执行JSON到CSV的过滤器conversiond@oguzismail举个例子会很有帮助我想你的意思是
@csv
,对吧?我试试看
> echo $(jq -r '.myfield' sourcefile.json |jq @csv)

result:

"\"10.149.46\",\"10.149.35\",\"10.149.45\""
> echo $(jq -r '.myfield' sourcefile.json |jq tostring)

result:

"[\"10.149.46\",\"10.149.35\",\"10.149.35\"]"