我有一个这样的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在评论中的解释相同。