jq-如何将数组转换为.gitlab-ci.yml文件中以逗号分隔的字符串列表
我正试图通过jq实现此输入的转换: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
[
"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\"]"