Yas*_*ane 2 bash shell json jq
我有一个包含数千个条目的 JSON 文件,我需要删除重复的块。
以下是该文件的示例:
{ "signatures": [
{
"signatureId": 0050,
"mode": 0
},
{
"signatureId": 0012,
"mode": 0
},
{
"signatureId": 0012,
"mode": 1
}
]}
Run Code Online (Sandbox Code Playgroud)
这是要实现的目标结果:
{ "signatures": [
{
"signatureId": 0050,
"mode": 0
},
{
"signatureId": 0012,
"mode": 0
}
]}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,“mode”值并不重要,真正重要的是“signatureId”不能重复,因此当我们删除整个块时,无论“mode”保留哪个,都不是问题。
我只能使用 Shell 和/或 JQ。
unique_by与要检查重复项的字段一起用作其参数。它总是需要第一个(这里是带有 的"mode": 0)
jq '.signatures |= unique_by(.signatureId)'
Run Code Online (Sandbox Code Playgroud)
{
"signatures": [
{
"signatureId": 12,
"mode": 0
},
{
"signatureId": 50,
"mode": 0
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |