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

如何用Shell脚本的Jq工具对比两个JSON文件输出不匹配对象

基于JQ实现两个JSON数组取差集的Shell方案

全字段完全匹配方案(符合示例需求)

如果需要两个对象所有键值对完全一致才判定为匹配,直接用JQ原生数组减法即可,命令如下:

jq --slurpfile f1 file1.json '. - $f1' file2.json

执行后直接输出目标结果,要保存到文件的话添加输出重定向即可:

jq --slurpfile f1 file1.json '. - $f1' file2.json > output.json

对应你的示例输入,输出结果为:

[
  {
    "name": "GHI",
    "age": "24",
    "address": "pqr"
  }
]

指定字段匹配方案

如果不需要全字段匹配,仅需要判断个别关键字段(例如仅匹配name字段)是否相同,使用如下命令:

# 仅按name字段匹配,筛选file2中name不在file1里的对象
jq --slurpfile f1 file1.json '[.[] | select(.name as $n | $f1 | map(.name) | IN($n[]) | not)]' file2.json

你可以自行修改命令中的name字段,替换为实际需要匹配的业务字段。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:36:03