jq:打印对象中每个条目的键和值

2024-03-22

如何得到jq像这样获取 json:

{
  "host1": { "ip": "10.1.2.3" },
  "host2": { "ip": "10.1.2.2" },
  "host3": { "ip": "10.1.18.1" }
}

并生成此输出:

host1, 10.1.2.3
host2, 10.1.2.2
host3, 10.1.18.1

我对格式不感兴趣,我只是不知道如何访问键名称和值。


要将顶级密钥作为流获取,您可以使用内置功能 https://stedolan.github.io/jq/manual/#Builtinoperatorsandfunctions keys[]。因此,解决您的特定问题的一种解决方案是:

jq -r 'keys[] as $k | "\($k), \(.[$k] | .ip)"' 

keys按排序顺序生成键名称;如果您希望它们按原始顺序排列,请使用keys_unsorted.

另一种按原始顺序生成密钥的替代方案是:

jq -r 'to_entries[] | "\(.key), \(.value | .ip)"'

CSV 和 TSV 输出

@csv 和 @tsv 过滤器也可能值得考虑,例如

jq -r 'to_entries[] | [.key, .value.ip] | @tsv'

产生:

host1   10.1.2.3
host2   10.1.2.2
host3   10.1.18.1

嵌入对象

如果按照以下示例嵌入感兴趣的键,则必须按照所示的行修改 jq 过滤器。

Input:

{
  "myhosts": {
    "host1": { "ip": "10.1.2.3" },
    "host2": { "ip": "10.1.2.2" },
    "host3": { "ip": "10.1.18.1" }
  }
}

修改:

jq -r '.myhosts | keys[] as $k | "\($k), \(.[$k] | .ip)"'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jq:打印对象中每个条目的键和值 的相关文章

随机推荐

  • br 在 ul 中无效

    我的网站上有一个导航栏 HTML
  • 在mathematica中使用Input[]输入数据

    我怎样才能在这段代码中使输入命令对话框中的文本像这样 输入 1 元素 输入 2 元素 For k 1 k n k br Input Enter the i element AppendTo x br 确保您的变量匹配 您可以使用Row来构建
  • 为什么 Ruby 的“gets”包含结束换行符?

    我从不需要我得到的结尾换行符gets 有一半的时间我忘记了chomp它是一种痛苦 为什么它在那里 Like puts 听起来很相似 它被设计为与线条一起工作 使用 n特点 gets接受一个可选参数 用于 分割 输入 或 只是读取直到它到达
  • 页面不工作 尝试解锁被另一个线程锁定的互斥体

    我想启动我的应用程序 但它仍在 加载 早上还可以 现在不行了 我尝试使用其他端口 切换到稳定分支 重新启动计算机 但似乎没有任何效果 在其他应用程序上 它可以正常工作 如果我停止服务器 这就是我看到的错误 在浏览器中 Attempt to
  • 当指定acceptNode时,createNodeIterator在IE9中失败

    Target 我想循环遍历 DOM 文本节点 按它们在 DOM 中的顺序排序 此外 我想通过自定义逻辑过滤节点 例如检查节点是否位于特定元素内 此外 所有这些都应该在 IE9 中以尽可能最佳的性能完成 Method 满足上述所有要求之一 d
  • Cypress Angular 什么时候可以开始测试?

    我正在使用 Cypress 对我的 Angular 应用程序进行端到端测试 我观察到的问题之一是 Cypress 的反应速度很快 而我的应用程序准备交互的速度 相对 慢 Cypress 有一些经常被引用的blog https www cyp
  • 如何从 dc js 图表中的 x 轴删除周末日期

    我有 2018 年 1 月以来每个日期的数据 我正在根据这些数据创建一个堆积折线图 每个周末我的数据计数为零 因此每个周末它都会在我的图表中显示下降 当数据达到零时 我想避免这种下滑 我有一个日期列和一个日列 日 列的值从 1 到 7 代表
  • AF网络进展

    我正在尝试使用setDownloadProgressBlockAFHTTPRequestOperation 类 回调给了我 3 个参数 NSInteger bytesRead NSInteger totalBytesRead NSInteg
  • Symfony 4.2 如何公开仅用于测试的服务

    我有公开服务的解决方案 在 services yml 中 test phpdocxService alias App Service PhpDocxService public true 我尝试访问该服务 container self co
  • Windbg !address 输出中的 是什么意思

    Example 0 074 gt address summary Usage Summary RgnCount Total Size ofBusy ofTotal Free 90919 7ec 34659000 7 923 Tb 99 03
  • 为什么在一行中运行两个 PowerShell 命令时输出格式会发生变化?

    执行两个用分号分隔的 PowerShell 命令时 我得到了意外的结果 第二个命令的输出发生变化 如果我以相反的顺序运行它们 我看不到第二个命令输出 在这里 我只是想获取时间戳和用户在 AD 中所属的组列表 作为一句简单的话 如果我运行这一
  • Android IAP 问题,购买对象中没有 OrderID

    我正在使用具有测试许可证访问权限的帐户之一测试 Android 应用内购买订阅 我知道测试访问权限不支持订阅 注意到没有orderId在购买响应 JSON 中 但付款已完成 不过不收费 因为此订阅有 7 天的跟踪 响应 json 如下所示
  • Nexus 工件上传

    如何使用 jenkins shell 将工件上传到 Nexus 并自动生成版本 我正在使用这个脚本 我想在上传工件时自动生成版本 mvn deploy deploy file DgroupId DartifactId Dversion Dg
  • 如何使用 Inno Setup 检查互联网连接

    我正在学习 Inno Setup 来制作一个简单的安装程序 在安装过程中我需要从网站下载文件 因此检查是否有互联网连接很重要 在安装过程中如何检查或采取一些警报以连接互联网 Thanks 最好的检查是尝试实际下载该文件 互联网 几乎不是一个
  • Makefile 排列

    Bash 可以产生排列 笛卡尔积 http wikipedia org wiki Cartesian product echo 1 2 a b 1a 1b 2a 2b 我想用 makefile 做类似的事情 这是一个例子 生成文件 all
  • 无效异常展开导致崩溃?

    我正在调试我们的一项测试中发生的崩溃 我们有一个用 C 编写的 ODBC 驱动程序 so 正在使用我们的测试工具 称为 Touchstone 通过 iODBC 对其进行测试 该工具也是用 C 编写的 我已使用 Oracle Solaris
  • jQuery 的 .data() 缓存是否在 jQuery mobile 中的页面转换中持续存在?

    我刚刚在读 jQuery data API参考 http api jquery com data 之前 我推测它可能通过分配来工作 data 页面元素的属性 有效地捷径 foo attr data foobar bar 1 想象一下 它确实
  • 具有自定义默认值的 EclipseLink JPA 主键

    我的 SQL Server 数据库中有一个表 其中主键字段定义为NEWID 作为默认值 期望客户端不需要传递主键字段值 SQL Server 将处理它 在 JPA 定义模型类时 我必须使用生成类型定义此 ID 字段 我试过IDENTITY
  • 如何通过RPC监听firestore

    我想听firestore中的实时变化 而且我也只允许使用Go 由于 Firestore SDK for Go 没有任何选项来监听实时更改 因此我决定使用 firestore v1beta1 sdk 我编写了以下代码来做到这一点 func T
  • jq:打印对象中每个条目的键和值

    如何得到jq像这样获取 json host1 ip 10 1 2 3 host2 ip 10 1 2 2 host3 ip 10 1 18 1 并生成此输出 host1 10 1 2 3 host2 10 1 2 2 host3 10 1