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

如何从两个JSON文件中基于signature字段提取并导出唯一值

跨JSON文件按指定字段提取唯一值的jq实现方案

适用场景

两个结构一致的JSON文件,需按指定字段(本案例为signature)筛选出仅在两个文件中总共出现一次的条目,输出到第三个文件。

前置说明

假设你的两个输入文件分别命名为file1.json、file2.json,格式和你提供的示例一致,为JSON Lines格式(多个JSON对象直接拼接,无外层数组包裹)。

执行命令

jq -s 'group_by(.signature) | map(select(length == 1) | .[]) | .[]' file1.json file2.json > unique_result.json

命令参数解释

  • -s:将两个输入文件的所有JSON对象整合为一个数组,实现跨文件统一处理
  • group_by(.signature):按signature字段对所有对象分组,相同signature的对象会被归入同一个子数组
  • map(select(length == 1) | .[]):遍历所有分组,仅保留长度为1的分组(对应仅出现一次的唯一signature),再将分组展开为单个对象
  • 末尾的.[]:将输出还原为和输入一致的JSON Lines格式,若你需要输出为数组格式,删除该部分即可

效果验证

假设file1.json包含signature为s1、s2的两个条目,file2.json包含signature为s2、s3的两个条目,执行命令后unique_result.json会输出s1、s3对应的两个条目,符合唯一值要求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:27:00