我有一个这样的 json 文件:
{"caller_id":"123321","cust_name":"abc"}
{"caller_id":"123443","cust_name":"def"}
{"caller_id":"123321","cust_name":"abc"}
{"caller_id":"234432","cust_name":"ghi"}
{"caller_id":"123321","cust_name":"abc"}
....
我试过:
jq -s 'unique_by(.field1)'
但是这将删除所有重复的项目,我希望只保留一个重复的项目,以获得这样的文件:
{"caller_id":"123321","cust_name":"abc"}
{"caller_id":"123443","cust_name":"def"}
{"caller_id":"234432","cust_name":"ghi"}
....
最佳答案
对于 field1
,我怀疑您在输出中得到了什么,因为没有给定名称的键/字段。如果您只是将命令更改为 jq -s 'unique_by(.caller_id)'
,它将为您提供所需的结果,其中包含基于 caller_id
键的唯一和排序对象。它将确保每个 caller_id
至少有一个对象。
注意:与@Jeff Mercado 在评论中的解释相同。
关于json - jq 删除重复的对象之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51619317/