JQ:具有静态值/变量的输出 [英] JQ : Output with static value / variable

查看:45
本文介绍了JQ:具有静态值/变量的输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用具有静态值:4546

nodes.json

{
  "nodes": {
    "node1.local": {
      ":ip": "10.0.0.1",
      "ports": [],
      ":memory": 1024,
      ":bootstrap": "bootstrap.sh"
    },
    "node2.local": {
      ":ip": "10.0.0.2",
      "ports": [],
      ":memory": 1024,
      ":bootstrap": "bootstrap.sh"
    },
    "node3.local": {
      ":ip": "10.0.0.3",
      "ports": [],
      ":memory": 1024,
      ":bootstrap": "bootstrap.sh"
    }
  }
}

这是我的命令用途

ips=`jq -c '.nodes | to_entries | map(.value.":ip")' nodes.json`
echo $ips

输出为

["10.0.0.1", "10.0.0.2", "10.0.0.3"]

我希望它像这样

["10.0.0.1:4546", "10.0.0.2:4546", "10.0.0.3:4546"]

推荐答案

您可以使用map_values

 jq -c '.nodes | to_entries | map(.value.":ip")| map_values(.+":4546")' nodes.jso

这篇关于JQ:具有静态值/变量的输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆