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

问题描述

我正在尝试用 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"
}

标签: gitlabjq

解决方案


想通了,感谢@oguzismail 指出正确的方向

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

  • jq @csv
> echo $(jq -r '.myfield' sourcefile.json |jq @csv)

result:

"\"10.149.46\",\"10.149.35\",\"10.149.45\""

或者

  • jq tostring
> echo $(jq -r '.myfield' sourcefile.json |jq tostring)

result:

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

推荐阅读