杰青 |更新由`select`选择的数组元素

2024-02-20

在 JSON 数组中,我想根据节点的值选择一个数组元素,然后更新同一数组元素中的不同节点。例如。在下面的 JSON 中:

{
"apiVersion": "vlabs",
"properties": {
    "orchestratorProfile": {
    "orchestratorType": "Kubernetes",
    "orchestratorRelease": "1.7",
    "orchestratorVersion": "1.7.10",
    "kubernetesConfig": {
        "kubernetesImageBase": "gcrio.azureedge.net/google_containers/",
        "clusterSubnet": "10.105.208.0/20",
        "networkPolicy": "calico",
        "nonMasqueradeCidr": "10.0.0.0/8",
        "maxPods": 110,
        "dockerBridgeSubnet": "172.17.0.1/16"
        "addons": [
        {
            "name": "tiller",
            "enabled": true
        },
        {
            "name": "aci-connector",
            "enabled": true
        },
        {
            "name": "kubernetes-dashboard",
            "enabled": true
        },
        {
            "name": "rescheduler",
            "enabled": true
        }
        ]
    }
    }
}
}

我想禁用所有不是“重新调度程序”的插件,即设置.enabled = false对于数组的元素.properties.orchestratorProfile.kubernetesConfig.addons[] where .name != "rescheduler"。我能算出的最接近的是

jq -r '.properties.orchestratorProfile.kubernetesConfig.addons[] |
  select (.name != "rescheduler" ) | .enabled =  false'

但是这个,或者我尝试过的任何其他方法,我总是会丢失数组之外的数据。

预期结果是:

{
"apiVersion": "vlabs",
"properties": {
    "orchestratorProfile": {
    "orchestratorType": "Kubernetes",
    "orchestratorRelease": "1.7",
    "orchestratorVersion": "1.7.10",
    "kubernetesConfig": {
        "kubernetesImageBase": "gcrio.azureedge.net/google_containers/",
        "clusterSubnet": "10.105.208.0/20",
        "networkPolicy": "calico",
        "nonMasqueradeCidr": "10.0.0.0/8",
        "maxPods": 110,
        "dockerBridgeSubnet": "172.17.0.1/16"
        "addons": [
        {
            "name": "tiller",
            "enabled": false
        },
        {
            "name": "aci-connector",
            "enabled": false
        },
        {
            "name": "kubernetes-dashboard",
            "enabled": false
        },
        {
            "name": "rescheduler",
            "enabled": true
        }
        ]
    }
    }
}
}

我该怎么做呢?提前感谢任何想法、帮助或指导。


除了缺少一对括号之外,您的 jq 查询是准确的:

(.properties.orchestratorProfile.kubernetesConfig.addons[]
 | select (.name != "rescheduler" ).enabled) = false

也就是说,在赋值的LHS上,需要指定需要更新的值的路径。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

杰青 |更新由`select`选择的数组元素 的相关文章

随机推荐

  • 使用正则表达式处理数学方程中的嵌套括号?

    如果我有 statement 2 3 1 2 我希望能够为我正在编写的数学阅读器处理括号内的多个括号 也许我的处理方式是错误的 但我的目标是递归地深入括号 直到没有括号 然后我将执行数学运算 因此 我首先想关注 2 3 1 然后专注于 3
  • Azure Function 和自托管 SignalR 服务器

    我知道可以使用 Azure SignalR 服务在函数中使用 SignalR 如下所示 https learn microsoft com en us azure azure signalr signalr quickstart azure
  • 为什么我的 Xcode 变得疯狂并忘记了一些明确定义的类?

    当我尝试构建时突然出现这些错误 它说的是MenuViewController是一个未知类型 但它非常明显地存在 甚至是进口的 它在编译源中 我尝试了 清理 清理构建文件夹 退出 Xcode 重新启动等 这个案例到底是怎么回事 我还可以命令单
  • 使用 Antd 上传操作将图像上传到 firebase 存储时出现问题

    我用的是antd图片墙 卡片 https ant design components upload components upload demo picture card使用此将图像上传到我的 firebase 存储的示例参考代码 http
  • 将图像放置在文本字段内

    我有一个像这样的 HTML 输入字段 我想在右侧的文本框中放置一个图像 有人可以帮我解决它的 CSS 问题吗
  • Libgdx 近战攻击碰撞检测

    我有一个带有 3D 模型实例的 3D 场景 我想做碰撞检测 我目前正在关注本教程 http blog xoppa com using the libgdx 3d physicals bullet wrapper part1 http blo
  • Jinja2 检查字典列表中是否存在值

    我正在尝试检查字典列表中是否存在某个值 我使用烧瓶1 0 2 请参阅下面的示例 person list dict name John Doe email email protected cdn cgi l email protection
  • 形成正则表达式来解析数字表达式

    我正在尝试解析字符串形式的数字比较 我想标记一个字符串 例如45 30 2 lt 50这样得到的组是45 30 2 lt and 50 我知道我可以将我的组定义为 w 对于数字项 对于括号内的术语 lt gt 1 2 对于运营商条款 但我不
  • 将 URL 参数添加到 Nutch/Solr 索引和搜索结果

    我找不到任何关于如何设置 nutch 来不过滤 删除我的 URL 参数的提示 我想抓取一些页面并为其建立索引 其中大量内容隐藏在相同的基本 URL 后面 例如 news jsp id 1 news jsp id 2 news jsp id
  • 所有音频频率

    我怎样才能获得 可能吗 所有音频现在都在系统中播放以编写一些声音可视化工具 有没有c 或c 库 提前致谢 基本步骤是 将窗函数应用于样本块 例如 1024 个样本 汉宁窗 对加窗样本执行实数到复数 FFT 取每个 FFT 输出 bin 的幅
  • Chrome 53 在第二页及以后的页面上打印两次表格标题的解决方法?

    我网站的用户需要能够打印包含第一页打印内容和第二页表格的网页 精简版本是 jsFiddle athttps jsfiddle net jaydeedub n3qhvtvx 25 https jsfiddle net jaydeedub n3
  • 根据另一列的排名计算一列的总和

    我有一个数据集 Security market value return Quintile 1 0 07 100 3 2 0 10 88 2 3 0 08 78 1 4 0 12 59 1 5 0 20 106 4 6 0 04 94 3
  • 我可以在运行时指定maven project.artifactId吗?

    我有一个 Maven POM 我想将其用作模板 根据我传递给它的参数生成具有不同名称的工件 但我不知道如何在运行时指定artifactId 如果我参数化
  • 用于 python 3.X 的 OpenCV

    有谁知道我是否可以在 python 3 X 中使用 OpenCV 库 或者我应该坚持使用scikit image用于物体识别之类的任务 我想尝试一下 openCV 但去年决定从 2 7 开始切换 我在这里搜索了数据包 http www lf
  • Java 中的 Windows 7 任务栏进度条

    我想知道是否可以像Windows资源管理器那样在进行文件操作时在任务栏上显示进度条 我看到很多例子 但都是C 的 SWT 不会削减它 我发现这个功能包含在Java 9 它是一部分AWT而且使用起来非常简单 这是一个简短的例子 import
  • 使用 Pandoc 和 Markdown 时出现紧密列表错误

    我在 Mac OS 10 12 上使用 pandoc v 1 18 将此 Markdown 文件转换为 pdf 使用简单的命令行 A list that does not work one two three 我收到此错误 Undefine
  • 使用 R 扩展时 NetLogo BehaviourSpace 崩溃

    我正在我的机器上运行动物饲养场的模型 我已将 R 扩展添加到 NetLogo 代码中 以计算每个家庭范围的最小凸多边形 当我在多个内核上的BehaviorSpace 中运行模型时 NetLogo 将在几个时间步骤后消失 即停止运行 我在 5
  • Visual Studio Code 中 Spring Boot 的热插拔

    我刚刚使用 Angular 4 启动了一个 Spring Boot 项目 对于 Angular 我可以运行npm start以便 NPM 编译每个更改 但我不知道如何为 Spring Boot 做到这一点 我可以找到一些 Eclipse I
  • Woocommerce 添加到购物车按钮重定向到结帐

    我使用插件 woocommerce 创建了一个电子商务 我只出售订阅 因此 cart 页面毫无用处 我正在尝试摆脱它 以便当我的客户单击 添加到购物车 按钮时 他最终会进入结帐页面 在 WooCommerce 3 6 或更高版本中 您可以使
  • 杰青 |更新由`select`选择的数组元素

    在 JSON 数组中 我想根据节点的值选择一个数组元素 然后更新同一数组元素中的不同节点 例如 在下面的 JSON 中 apiVersion vlabs properties orchestratorProfile orchestrator