json - 如何使用键和值输出正确的结果?
问题描述
我有一个如下的json:
[
{
"AvailabilityZone": "ap-northeast-1a",
"Tags": [
{
"Value": "value1",
"Key": "key1"
},
{
"Value": "value2",
"Key": "key2"
}
],
},
{
"AvailabilityZone": "ap-northeast-1a",
"Tags": [
{
"Value": "value3",
"Key": "key3"
},
{
"Value": "value4",
"Key": "key4"
}
],
},
]
当我从键盘输入键和值时。我只想通过 jq 选项使用键和值输出正确的结果。
示例:我输入的 Key:value 是 key3:value3。我的愿望:
{
"AvailabilityZone": "ap-northeast-1a",
"Tags": [
{
"Value": "value3",
"Key": "key3"
},
{
"Value": "value4",
"Key": "key4"
}
],
}
解决方案
使用 select 过滤标签下的数组:
jq '.[].Tags | select((.[].Key == "key3") and (.[].Value="value3")) ' < file.json
连同从标准输入中读取键和值:
echo key3 value3 | (
read key value
k=$key v=$value jq ".[].Tags
| select((.[].Key == env.k) and (.[].Value=env.v))
" < file.json)
推荐阅读
- sql - 使用 BigQuery 访问 Google Analytics 自定义维度
- excel - 连接特定列的字符串 (VBA)
- python - 无法在 Python 中的 Flask 网页上显示字典的值
- salesforce - 触发器以限制特定类型的重复记录
- php - 将自定义字段添加到“编辑供应商”页面 - Woocommerce 产品供应商
- javascript - 当我放大它时,我的 D3js 树形图不属于我的 div
- azure - 在 azure sql server 上添加故障转移组时用于 JDBC 的连接字符串
- javascript - 谷歌标签管理器和 $ (JQuery) 未定义
- ios - 使用 UIPageViewController 的一些错误
- c++ - 使用向量容器挂起,同时使用数组快速计算 2D 数组