【发布时间】:2019-01-17 21:56:41
【问题描述】:
我想使用 jq 提取 JSON 文件中键 Action 的任何外观。 Action 在不同路径(或具有不同值的相同路径键结构)中的 JSON 中多次出现。
用例是提取所有授予* 权限的IAM 策略。
我想选择 .Action 是值“*”或者是一个以 "*" 为元素的数组的情况,例如
"Action":["not this", "*", "not that"]
另外,最好将包含"Action" 的 JSON 片段包含在更高级别。
例如这个 JSON:
{
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Action": "*",
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
}
}
]
},
...
它会被提取
{
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Action": "*",
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
}
}
]
},
...
}
这可以通过jq 实现吗?如何实现?
【问题讨论】:
-
是的,这一切都是可以实现的,但是不清楚你是指文字字符串值“.”还是你的意思是“.”字符串匹配的意义(“globbing”)。另外,请指定输出格式。简而言之,如果您遵循minimal reproducible example 指南,将会有所帮助。谢谢。
-
它的字面值
*。我已经更新了我的问题,希望更清楚。
标签: json amazon-web-services jq amazon-iam