在 bash 中从 YAML 文件解析嵌套变量

2024-01-30

一个复杂的.yaml文件来自这个链接 https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml需要输入到 bash 脚本中,该脚本作为在 Amazon Linux 2 的 EC2 实例上运行的自动化程序的一部分运行。请注意.yaml上面链接中的文件包含许多对象,我需要提取在文件中定义的许多对象之一中定义的环境变量之一。

具体来说,我怎样才能提取192.168.0.0/16的值CALICO_IPV4POOL_CIDR变量变成bash变量?

        - name: CALICO_IPV4POOL_CIDR
          value: "192.168.0.0/16"

我读过很多关于解析更扁平、更简单的其他帖子和博客文章.yaml文件,但这些其他示例都没有显示如何提取像这样的嵌套值value of CALICO_IPV4POOL_CIDR在这个问题中。


正如其他人评论的那样,建议使用yq(随着jq) 如果可供使用的话。
那么请尝试以下操作:

value=$(yq -r 'recurse | select(.name? == "CALICO_IPV4POOL_CIDR") | .value' "calico.yaml")
echo "$value"

Output:

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

在 bash 中从 YAML 文件解析嵌套变量 的相关文章

随机推荐

  • 为 GitHub 设置 SSH 密钥

    我正在跟进这些说明 http help github com mac set up git 了解如何设置 SSH 密钥以用于 GitHub 说明会告诉您删除当前的 ssh目录并在该 ssh 目录中创建新密钥 我无法执行此操作 因为我的电脑中
  • AngularJS 中的子菜单(展开/折叠树)

    在过去的一天里 我一直在寻找使用 Angular 来控制带有子菜单的菜单列表的最佳方法 使用 jQuery 您可以在特定类型的元素 例如 li 并向其子元素添加一个类以打开菜单 我正在尝试做与此页面上的菜单相同的事情http geedmo
  • Postgres:将数据从一个数据库的公共模式移动到另一个数据库的新模式的最佳方式

    我是 Postgres 新手 刚刚发现我无法在一个 SQL 查询中访问不同数据库的数据 并且还学习了Postgres中模式的概念 现在 我有两个数据库 db1 和 db2 两者在其公共模式中都有相同名称的表 现在 我想在 db1 中创建一个
  • npgsql 和实体框架代码优先设置问题

    我最近收到的错误是 ERROR 42P01 relation dbo MigrationHistory does not exist 但我确信这只是因为之前的某些事情没有正确设置 我目前正在尝试首先设置实体框架 4 4 代码以使用 Npgs
  • 如何使用 SpringBootTest 测试某个方面?

    我使用 Spring Boot 2 1 6 RELEASE 在 Spring 中创建了一个简单的方面 它基本上记录了一个方法所花费的总时间 Aspect Component public class TimeLoggerAspect pri
  • JobLauncherTestUtils 在尝试测试 Spring Batch 步骤时抛出 NoUniqueBeanDefinitionException

    我正在使用 Spring boot 和 Spring Batch 我定义了不止一项工作 我正在尝试构建 junit 来测试作业中的特定任务 因此我使用 JobLauncherTestUtils 库 当我运行测试用例时 我总是得到 NoUni
  • Json 字符串数组转为 Java 字符串列表

    我有一个返回字符串列表的网络服务 仅返回字符串列表 string1 string2 string3 我怎样才能把它转换成ArrayList
  • Linux 容器上使用 screen -x 命令时出现“必须连接到终端错误”

    我正在使用带有 Proxmox 4 的 Linux 容器 当我连接到 Ubuntu 16 04 容器时 pct enter
  • Java 和 Python 一起出现在单个 Google App Engine 项目中

    我目前有一个在 Google App Engine 上运行的 Java 应用程序 但我想添加 Python 模块的 SearchableModel 提供的功能 当然是搜索功能 是否可以在与 Java 代码相同的项目中运行 python 代码
  • Pyinstaller.exe 未产生预期结果

    这是我第一次使用 pyinstaller 在 Windows 机器上构建 py 的 exe 我已成功生成 exe 但是当我运行代码时 它不会生成我的代码应生成的 csv 文件 附带说明一下 当我在 IDE 中运行脚本时 它成功生成了我期望的
  • OpenGL 渲染器不适用于冰淇淋三明治

    您好 我正在使用 OpenGL ES 1 0 构建 Android 游戏 一切都工作正常 直到我的 Transformer 平板电脑更新为冰淇淋三明治 现在 任何使用 OpenGL 渲染的内容都不会显示在屏幕上 我环顾四周 发现了Textu
  • 后期绑定与多态性 - 有什么区别?

    我见过两者互换使用 但它们真的意味着相同吗 根据我的理解 多态性延伸了这样一个事实 即您可以通过子类的实例交换类的实例 而后期绑定意味着当您调用实例的方法时 类型决定调用哪个方法 子类 超类 维基百科有一篇关于此的非常好的文章 http e
  • Ajax woocommerce 在弹出窗口中跟踪订单,无需重新加载页面

    我通过短代码将订单跟踪放在弹出窗口中 但问题是单击并发送请求后 页面将重新加载并且弹出窗口关闭 我希望通过 Ajax 在同一个弹出窗口中显示请求的结果 并且不重新加载页面 我搜索了整个网络 但找不到方法 如果有人知道如何做到这一点 请指导我
  • 在 Swift 中创建 UIView 的副本

    因为对象是引用类型 而不是值类型 如果您设置UIView等于另一个UIView 视图是同一对象 如果您修改其中一个 您也会修改另一个 我有一个有趣的情况 我想添加一个UIView作为另一个视图中的子视图 然后我进行一些修改 并且这些修改不应
  • c# 更改AD密码Directoryservices

    我试图让下面的代码工作 问题是 有时可以 有时不可以 当失败时 会出现错误 0x800704F1 系统无法联系域控制器来服务身份验证请求 我想说大约 90 的情况都会失败 我尝试通过将其添加到 contexttype 后面来给它一个静态 D
  • 什么是“.”和 Windows 目录中的“..”?

    我正在编写一个程序来列出 Windows 目录中的所有文件 我只是使用提供的文件管理功能 但我对结果很好奇 Target file is The first file found is The next file found is The
  • 触发问题,更新面板不起作用?

    我创建动态 LinkBut ton 并将 LinkBut ton 的单击触发器添加到 UpdatePanel 现在 当我第一次单击任何一个链接按钮时 触发器运行良好 并显示我的选择 没有回发 之后 我单击其他 LinkBut ton 所有页
  • 哪种做法更好 - 全球导入或本地导入

    我正在 django 中开发一个应用程序 我怀疑在全局级别导入库是否比在本地 每个函数 级别导入库对内存或性能有任何影响 如果按功能或视图导入 则导入单独需要的模块可以节省空间 对吗 或者这样做有什么负面影响吗 您肯定已经注意到 几乎所有
  • Data.Map / Data.IntMap 是否存在 monad 实例?

    我有一个在 IntMap 上运行的算法 我认为最好以命令式的方式表达它 也就是说 我想说的是 在地图中查找值 X 如果它符合条件 则从地图中删除该值 循环直到地图中不再存在任何值 用两行递归来表达是相当简单的 但实际的算法有点复杂 涉及多次
  • 在 bash 中从 YAML 文件解析嵌套变量

    一个复杂的 yaml文件来自这个链接 https docs projectcalico org v3 3 getting started kubernetes installation hosted kubernetes datastore