Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在terraform或jq中使用单个元素连接数组_Terraform_Jq - Fatal编程技术网

在terraform或jq中使用单个元素连接数组

在terraform或jq中使用单个元素连接数组,terraform,jq,Terraform,Jq,我有以下json数据,这些数据来自terraform中的data“external” { "ips": ["192.168.0.1", "192.168.0.2", "192.168.0.3"], "port": "8080" } 我想以ip:port 所需输出如下所示: ["192.168.0.1:8080", "192.168.0.2:8080", "192.168.0.3:8080"] 我试图在terraform中实现这一点,但我对使用

我有以下json数据,这些数据来自terraform中的
data“external”

{
  "ips": ["192.168.0.1",
          "192.168.0.2",
          "192.168.0.3"],

  "port": "8080"
}
我想以
ip:port

所需输出如下所示:

["192.168.0.1:8080",
"192.168.0.2:8080",
"192.168.0.3:8080"]
我试图在
terraform
中实现这一点,但我对使用
jq


我能找到的最接近的东西是string
join
函数,它使用分隔符,但不会将端口添加到最后一个元素中

我设法用terraform的
join
找到了一个工作解决方案,然后手动将端口附加到最后一个IP,但我很乐意找到一个更干净的解决方案

地形片段

format("%s:%s", 
      join(
         format(":%s,", port),
         ips
       ),
      port)

如果jq的输出格式也适合您,那么您可以使用:

jq '[ .ips[] + ":" + .port ]' input


.ips[]
在保留根对象作为输入的同时,在ip数组上迭代,以便
.port
可用。然后,
…+“:”+.port
表达式应用于每个元素,生成一个转换值流。

这是一个地形片段,我认为在
jq
[
  "192.168.0.1:8080",
  "192.168.0.2:8080",
  "192.168.0.3:8080"
]