我有一个这样的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至少有一个对象&atmost。
注:与@jeff mercado在评论中的解释相同。

09-15 19:44