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

如何使用jq检测JSON中嵌套replicas数组内的重复值

使用jq检测replicas列表重复值的方法

核心原理

判断数组是否存在重复可以通过对比「原数组长度」和「去重后数组长度」实现:如果去重后的长度小于原长度,说明存在重复值。jq内置的unique函数可直接完成数组去重操作。

常用场景解决方案

1. 筛选出所有存在重复replicas的分区条目

执行命令:

jq '.partitions[] | select( .replicas | unique | length != .replicas | length )' 你的json文件路径

针对示例输入的执行结果:

{
  "topic": "mytopic1",
  "partition": 1,
  "replicas": [
    5,
    5,
    6
  ],
  "log_dirs": [
    "any",
    "any"
  ]
}

2. 仅判断是否存在重复,直接返回布尔结果

如果不需要具体的重复条目,只需要知道整体有没有重复,执行命令:

jq 'any(.partitions[]; .replicas | unique | length != .replicas | length )' 你的json文件路径

针对示例输入的执行结果:

true

命令说明

  • unique:对输入的数组去重并按升序排序
  • select(条件):保留符合条件的条目
  • any(数组; 条件):判断数组中是否至少有一个元素符合条件,是则返回true,否则返回false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:15:01