如何用jq筛选包含description字段的变量名称?
正确筛选含description字段的变量名的jq命令
假设你的JSON数据结构类似这样(顶层是变量名到属性对象的映射):
{ "AWS_REGION": { "description": "AWS region", "value": "us-east-1" }, "ENVIRONMENT": { "description": "Deployment environment", "value": "prod" }, "AWS_ROLE": { "value": "arn:aws:iam::123456789012:role/admin" } }
直接用这条jq命令就能得到你要的结果:
jq -r 'to_entries[] | select(.value.description) | .key' your-file.json
命令拆解
to_entries[]:把顶层的键值对转换成数组条目,每个条目包含key(变量名)和value(变量的属性集合)select(.value.description):筛选出属性集合里存在description字段的条目(如果description可能为null但你仍想保留,换成select(.value | has("description"))更严谨).key:提取符合条件的变量名称-r:输出纯字符串,不带JSON引号
运行后输出结果:
AWS_REGION ENVIRONMENT
内容的提问来源于stack exchange,提问作者donhector
相关产品推荐
相关产品推荐

