You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于jq查找大型JSON文件中键为ENTITY值为TEXT的所有嵌套路径

任意层级匹配JSON指定键值节点路径方案

核心查询命令

直接使用jq内置的递归路径查询能力,无需提前指定JSON结构层级,匹配所有键为ENTITY且值为TEXT的节点并输出路径:

jq -c 'paths as $p | select(getpath($p) == "TEXT" and $p[-1] == "ENTITY") | $p' 目标文件.json

命令说明

  • paths 函数会递归遍历JSON所有层级,输出每个节点的路径数组,例如["root", "list", 3, "ENTITY"]代表路径为根节点下的root字段→list数组第4个元素→ENTITY键
  • $p[-1] == "ENTITY" 筛选当前节点的键名为ENTITY
  • getpath($p) == "TEXT" 筛选当前节点的取值为TEXT
  • 最终输出的路径数组可直接对应到节点的嵌套位置

易读格式输出

如果需要输出常规点分隔的路径格式(数组索引用方括号标注),可使用以下命令:

jq -r 'paths as $p | select(getpath($p) == "TEXT" and $p[-1] == "ENTITY") | $p | map(if type == "number" then "[" + tostring + "]" else . end) | join(".") | gsub("\\.\\[";"[")' 目标文件.json

示例输出:metadata.content[5].ENTITY

超大文件优化

针对数十万行甚至GB级别的JSON文件,可开启流式处理模式,无需全量加载文件到内存即可完成查询:

jq -n --stream 'fromstream(1|truncate_stream(inputs)) | paths as $p | select(getpath($p) == "TEXT" and $p[-1] == "ENTITY") | $p' 大体积目标文件.json

内容的提问来源于stack exchange,提问作者curiousity

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:36:05