JQ - 使用 unique_by 删除重复项
JQ - removing duplicates using unique_by
我正尝试通过 id
从以下 json 中删除重复项
这是 json:
{
"Result": [
{
"name": "validation-of-art",
"id": "12",
"status": "passed",
"duration": 4740302
},
{
"name": "validation-of-art",
"id": "12",
"status": "passed",
"duration": 272320
},
{
"name": "validation-of-art",
"id": "13",
"status": "passed",
"duration": 272320
}
]
}
这是我尝试过的:
jq -r 'unique_by(.Result.name)'
还有 jq 'unique_by(.Result[].name)'
我遇到错误 - Cannot index array with string "Result"
任何帮助将不胜感激。
这是一个使用 unique_by(.name)
消除除一个 .Result
对象之外的所有对象的示例
$ jq -M '.Result |= unique_by(.name)' data.json
{
"Result": [
{
"name": "validation-of-art",
"id": "12",
"status": "passed",
"duration": 4740302
}
]
}
如果这不是您想要的,您可以轻松地概括它。例如。为每个唯一的对象保留一个对象 {name,id}
您可以使用
$ jq -M '.Result |= unique_by({name, id})' data.json
{
"Result": [
{
"name": "validation-of-art",
"id": "12",
"status": "passed",
"duration": 4740302
},
{
"name": "validation-of-art",
"id": "13",
"status": "passed",
"duration": 272320
}
]
}
我正尝试通过 id
从以下 json 中删除重复项
这是 json:
{
"Result": [
{
"name": "validation-of-art",
"id": "12",
"status": "passed",
"duration": 4740302
},
{
"name": "validation-of-art",
"id": "12",
"status": "passed",
"duration": 272320
},
{
"name": "validation-of-art",
"id": "13",
"status": "passed",
"duration": 272320
}
]
}
这是我尝试过的:
jq -r 'unique_by(.Result.name)'
还有 jq 'unique_by(.Result[].name)'
我遇到错误 - Cannot index array with string "Result"
任何帮助将不胜感激。
这是一个使用 unique_by(.name)
.Result
对象之外的所有对象的示例
$ jq -M '.Result |= unique_by(.name)' data.json
{
"Result": [
{
"name": "validation-of-art",
"id": "12",
"status": "passed",
"duration": 4740302
}
]
}
如果这不是您想要的,您可以轻松地概括它。例如。为每个唯一的对象保留一个对象 {name,id}
您可以使用
$ jq -M '.Result |= unique_by({name, id})' data.json
{
"Result": [
{
"name": "validation-of-art",
"id": "12",
"status": "passed",
"duration": 4740302
},
{
"name": "validation-of-art",
"id": "13",
"status": "passed",
"duration": 272320
}
]
}