如何使用JQ检测和上报重复的Object Key?例如,下面的JSON在.a
上有重复的键.
{
"a":{
"b": 1
},
"a":{
"c": 1
}
}
我认为使用--stream是必需的,但我不能完全正确地使用它.
编辑:不能假定DUP只能作为顶级密钥存在.DUP可能存在于任何级别.
如何使用JQ检测和上报重复的Object Key?例如,下面的JSON在.a
上有重复的键.
{
"a":{
"b": 1
},
"a":{
"c": 1
}
}
我认为使用--stream是必需的,但我不能完全正确地使用它.
编辑:不能假定DUP只能作为顶级密钥存在.DUP可能存在于任何级别.
如果您不介意运行两次JQ,您可以使用--stream
标志在"外部"(在折叠副本之前)生成一次流,使用tostream
过滤器"在内部"(在折叠副本之后)生成一次流,然后使用diff
它们的结果(使用jq -c
进一步将输出数量减少到diff):
diff -qs <(jq -c --stream . file.json) <(jq -c tostream file.json)