JQ — 返回满足谓词的第一个元素

2024-01-09

我有一个像这样的字符串:

"The sky is blue."

和一个 JSON 文件,例如

[
  {
    "id": 1234,
    "name": "Entry 1",
    "keywords": [
      "orange",
      "yellow"
    ]
  }, 
  {
    "id": 2345,
    "name": "Entry 2",
    "keywords": [
      "red",
      "blue",
      "pink"
    ]
  }, 
  {
    "id": 3456,
    "name": "Entry 3",
    "keywords": [
        "green",
        "blue",
        "black"
    ]
  }
]

我想返回具有可以在字符串中找到的关键字的第一个元素。

在这种情况下,我想要具有 id 的元素2345,因为关键字"blue"出现在字符串中,并且是第一个匹配项。

JQ 是否有单线解决方案(例如使用各种管道)?我不是在寻找带有循环的解决方案。


Using first/1 https://stedolan.github.io/jq/manual/#first(expr),last(expr),nth(n;expr) with a select表达是这里的正确方法

jq --arg v "The sky is blue." 'first(.[] | select(.keywords as $k | $v | match($k[])))'

produces

{
  "id": 2345,
  "name": "Entry 2",
  "keywords": [
    "red",
    "blue",
    "pink"
  ]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQ — 返回满足谓词的第一个元素 的相关文章

随机推荐

  • NSMutableDictionary 的 JSONRepresentation

    我想打电话给JSONRepresentation上的方法NSMutableDictionary目的 我用它来称呼它 userDict JSONRepresentation 但我收到以下警告 NSMutableDictionary may n
  • Celery工人并发

    我制作了一个抓取工具来扫描大约 150 个链接 每个链接都有大约 5k 个子链接可供获取信息 我正在使用 Celery 在后台运行抓取工具并将数据存储在 Django ORM 上 我用BeautifulSoup剪贴簿留言网址 当我使用这个命
  • 如何在 Visual Studio 2012 中更改 ipch 路径

    我看到VS2012在解决方案文件夹中创建了一些文件 sdf suo ipch等 是否可以更改创建这些文件的文件夹 The methods for VS2010 don t work in VS2012 see screenshot Go t
  • Qt 上的 startActivity,没有任何显示

    我编码如下 似乎显示 Android 设置菜单 但没有显示任何内容 我没有看到任何错误或日志 我不知道打电话后会发生什么startActivity QAndroidJniObject activity QAndroidJniObject c
  • 如何使用 PHP 将所有字符转换为其等效的 html 实体

    我想转换这个 email protected cdn cgi l email protection to 104 101 108 108 111 064 100 111 109 097 105 110 046 099 111 109 我努力
  • vue-chartjs - 中间有文本的圆环图

    我想在甜甜圈类型的图表内添加文本 我在我的 vuejs 项目中使用这个插件 https github com apertureless vue chartjs https github com apertureless vue chartj
  • Promise 回调中的单元测试逻辑

    我有一个 ES6 Aurelia 应用程序 我正在使用 jasmine 来测试 我试图测试的方法看起来像这样 update let vm this vm getData then response gt vm processData res
  • mscorlib.dll 和 System.dll

    为什么微软最初决定维护这两个独立的核心库 也许他们考虑到了一些可扩展性问题 但现在我从未见过任何类型的应用程序不需要两者 有人有这方面的内幕消息吗 这并不重要 但多年来一直在我的脑海里 附言 我知道这两个库中有什么 我知道区别 我是的忠实粉
  • 防止键盘关闭。反应本机

    当我有键盘时如何保持键盘打开TextInput and Touchable靠近发送消息的输入 所以我想在不双击可触摸的情况下发送消息 首先隐藏键盘 其次发送消息 怎么做 Use keyboardShouldPersistTaps来处理这个问
  • 为什么 Jersey 不尊重动态绑定过滤器中的优先级?

    我正在使用DynamicFeature in Jersey https jersey java net documentation latest filters and interceptors html d0e10049将容器请求过滤器动
  • 如何在 Logstash 中获取部分 Filebeat 源文件名

    我有一个 Filebeat 实例 版本 7 5 0 在 Windows Server 上运行 监视本地文件夹中的日志文件 并将这些数据向前发送到 Logstash 版本 7 5 0 在 Docker 容器中运行 在 Logstash 中 我
  • 虚拟键盘处于活动状态时的屏幕样式

    理想情况下 我希望整个界面有一个定制样式这可以在 ios itouch ipad 或具有虚拟键盘的 Android 同等设备上看到 请参阅下面的更多细节 当键盘 存在 时 自定义设置的 CSS 黑客规则将处于活动状态 也是一个可接受的解决方
  • Xcode 始终无法在设备上启动应用程序:“未知数据包回复:环境数据包“超时”。”

    自从升级到 Xcode 4 2 以来 我经常遇到错误 尝试调试应用程序失败 并显示消息 未知数据包回复 环境数据包 超时 重新启动设备并不能始终解决问题 尽管有时可以解决 重新启动 Xcode 或重新启动开发计算机也不能解决问题 清理和重新
  • 如何计算两个日期时间之间的小时,分​​钟? [复制]

    这个问题在这里已经有答案了 我有两个约会 date1 2014 02 11 04 04 26 AM date2 2014 02 11 05 36 56 AM 我想计算差异并显示如下 1 hour 32 minutes 利用DateTime
  • 来自 Java 的 UnknownHostException 但主机通过 Ping/nslookup/curl 进行解析

    当 Java EE 服务器尝试从其中一项服务解析主机名时 我们遇到以下异常 我们能够使用 ping nslookup 命令手动解析盒子上的主机名 我们还能够使用与服务器尝试使用的参数相同的curl 来启动该外部服务 因此 似乎只有当我们尝试
  • 在 matplotlib/gnuplot 中绘制标记间隔

    我有一个数据样本 如下所示 a 10 15 22 10 15 30 OK b 10 15 23 10 15 28 OK c 10 16 00 10 17 10 FAILED b 10 16 30 10 16 50 OK 我想要的是按以下方式
  • 正确编译子文件夹中的模块(ocamlbuild)

    我最近决定整理我的项目目录中的文件 我将几种不同文件类型的解析器移至它们自己的目录中 并决定使用 ocamlbuild 因为项目变得越来越复杂 简单的 shell 脚本不再足够 我能够通过使用一些基本规则修改 myocamlbuild 来成
  • 让按钮填充容器元素的整个宽度?

    我正在从使用转换div作为实际按钮的按钮 现在我需要使按钮填充容器的整个宽度 Code container background color ddd padding 10px max width 500px margin left auto
  • Terraform 未部署 api 网关阶段

    我一直在尝试使用 terraform 创建 API 网关端点 除了部署阶段的最后一部分之外 一切似乎都正常 运行 terraform apply 后 我进入控制台 发现部署尚未发生 我需要手动单击 部署 Api 才能使其正常工作 这是 ap
  • JQ — 返回满足谓词的第一个元素

    我有一个像这样的字符串 The sky is blue 和一个 JSON 文件 例如 id 1234 name Entry 1 keywords orange yellow id 2345 name Entry 2 keywords red