【发布时间】:2026-01-14 01:15:01
【问题描述】:
在过去的几天里,我搜索了类似的问题/答案,试图解决这个问题,我相信我的业余 jq 技能正在阻止我解决这个问题。
我正在尝试合并重复的条目;例如...我想:
{
"Version": "2008-10-17",
"Id": "SomeBucketPolicy",
"Statement": [
{
"Sid": "Stmt1234567890987",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::726481726312:root"
},
"Action": [
"s3:GetBucketAcl",
"s3:GetBucketPolicy"
],
"Resource": "arn:aws:s3:::it-lab-test"
},
{
"Sid": "Stmt3423424566754",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::726481726312:root"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::it-lab-test/*"
},
{
"Sid": "SomeAPIUser",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::536415397313:user/SomeAPIUser"
},
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:GetObjectRetention"
],
"Resource": "arn:aws:s3:::it-lab-test/*"
},
{
"Sid": "SomeAPIUser",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::536415397313:user/SomeAPIUser"
},
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:GetObjectTagging"
],
"Resource": [
"arn:aws:s3:::it-lab-test/*",
"arn:aws:s3:::another-test-bucket/*",
"arn:aws:s3:::someother-test-bucket/*"
]
}
]
}
...变成:
{
"Version": "2008-10-17",
"Id": "SomeBucketPolicy",
"Statement": [
{
"Sid": "Stmt1234567890987",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::726481726312:root"
},
"Action": [
"s3:GetBucketAcl",
"s3:GetBucketPolicy"
],
"Resource": "arn:aws:s3:::it-lab-test"
},
{
"Sid": "Stmt3423424566754",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::726481726312:root"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::it-lab-test/*"
},
{
"Sid": "SomeAPIUser",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::536415397313:user/SomeAPIUser"
},
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:GetObjectRetention",
"s3:GetObjectTagging"
],
"Resource": [
"arn:aws:s3:::it-lab-test/*",
"arn:aws:s3:::another-test-bucket/*",
"arn:aws:s3:::someother-test-bucket/*"
]
}
]
}
我希望它尽可能灵活和宽容;如果需要为多个条目创建数组,如果嵌套对象中有重复项,它们也会被正确合并,等等。
我尝试了多种方法,使用了大量示例/技术(分组、映射、使用函数),但我无法得出我正在寻找的结果(我要么重复或数据不再存在且未合并)。我最接近的是通过使用这个解决方案Remove duplicate values from JSON with jq ...但是在处理嵌套在块中的多个对象时遇到了问题。
中的任何帮助将不胜感激【问题讨论】:
-
告诉我们你尝试了什么。你是什么意思重复?精心制作