问题标签 [yq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2345 浏览

awk - 如何使用 yq 更改嵌套 YAML 记录中的值

我正在尝试将 YAML 文件的第 3 层嵌套值更改为File 的当前bind_host: localhostbind_host: 0.0.0.0bind_host

预期产出

我在尝试

编辑:根据@inian 的回答添加图片 在此处输入图像描述

第二张图片 在此处输入图像描述

0 投票
1 回答
5351 浏览

kubernetes - 使用 yq 更新 yaml 中的嵌套数组值

给定一个 yaml 文件(helmfile),如下所示

我正在尝试找出一种更新特定图像标签的干净方法。例如,我想image.bar_proxy.tag从更新4651.

我有以下内容,可以完成这项工作,但它要求您知道数组项的确切索引:

因此,如果数组顺序在某个时候发生变化,这将会中断。

一个首选的解决方案是:“将 image.bar_proxy.tag 值从46where 51set[].name==image.bar_proxy.tag 更新”。关于如何实现更具体的条件选择的任何想法?

仅供参考我们的 yq 版本:

0 投票
1 回答
3381 浏览

yaml - yq 处理带引号的字符串

目前,我正在尝试使用mikefarah/yq处理器(Ubuntu 机器上的版本 3.1.2)在 YAML 文件中交换一个字符串,但带有双引号,类似于以下内容:

所以我首先尝试为我经典地解决这个问题:

但是引号不包含在字符串中。

我已经多次尝试转义字符串以获得所需的结果,但不幸的是一切都不是所需的结果。例如,如果我将字符串设置为三倍(类似于 """),则设置了引号,但它周围有一个单引号。然后看起来像这样:

但我想要的结果是这样的:

我还尝试使用不同变体的反斜杠(例如“\”exchangedstring\“”或“\”exchangedstring\”')。不幸的是所有错误的结果。我不能排除稍后将解析yaml文件的应用程序不会与该位置的字符串混淆的可能性,因此对我来说绝对有必要将该字符串放在该位置的引号中。

有谁知道我如何仍然只能得到一个简单版本的引号?非常感谢您提前。

0 投票
3 回答
282 浏览

regex - 如何自动从 yaml 文件中删除 kubernetes 机密?

我有一个包含许多 Kubernetes YAML 对象的文件。我正在寻找一种从文本文件中删除所有 K8s Secret YAML 对象的方法,这些对象由"kind: Secret"YAML 块中包含的字符串标识。这应该删除从“apiVersion”到“---”之前的所有内容,表示下一个对象的开始。

我研究过 Sed、Python 和 yq 工具,但没有成功。YAML 可以包含任意数量的秘密,以任何顺序。

如何自动剥离这些“秘密”块?

0 投票
1 回答
105 浏览

yaml - 解析传递给 YML 的变量

我有一个类似于下面的 yml 文件

我希望能够在log_group_name这里扩展密钥。这个想法是log_group_name键通过变量作为列表传递,例如

logGroups = my-application-1,my-application-2,my-application-3,my-application-4

我希望这能在 yml 中翻译成这个

是否可以使用 shellscript 或任何解析器/工具来做到这一点?任何帮助深表感谢。

0 投票
5 回答
4268 浏览

bash - 在 for 循环 bash 中使用 yq

我有一个如下所示的 yaml 数组,

我正在尝试使用 for 循环和 yq 在 bash 脚本中解析这个 yaml。

但我没有得到预期的结果,比如无法获取 roleArn、group、user 的值。请让我知道如何解决这个问题。

0 投票
1 回答
246 浏览

yq - 在 bash 中修改 yaml 数组

我有一个包含以下内容的文件,

我想附加这个文件内容,如下所示,前两行是 eks ,iammappings,

我尝试了 yq 合并。但它对我不起作用。请让我知道如何执行此操作。

0 投票
4 回答
1754 浏览

bash - 将 yaml 数组转换为字符串数组

我有一个如下的 yq 读取命令,

它从以下 yaml 读取 iamIdentityMappings:

它存储组如下,

但我想按如下方式存储组。(逗号分隔值)

如何在 bash 中做到这一点?

0 投票
1 回答
104 浏览

bash - 根据 bash 中的计数变量构造命令

我想根据示例中显示的 yaml 文件中的组数构造一个命令。

例子:

我有下面的组命令,它从 iamIdentityMappings yaml 文件中提取组,

iamIdentityMappings yaml 文件:

由于 groups 数组中有两个组,我需要在下面的命令中添加两个组,

如果有 3 个组,那么 --group 应该在命令中重复 3 次。

请让我知道如何在 bash 中执行此操作

0 投票
1 回答
3026 浏览

yaml - 用新值替换 yq 的 Yaml 值作为 bash 函数的输出,该函数接受当前值作为输入

概述

细节

我有这个 bash 功能:

另一方面,我有一个 YAML 文件:

我能够用.image静态值替换键的所有值出现:

结果和预期的一样:

但是,我想利用上面的 bash 函数replace_image_repo并调用它来根据当前值计算每次出现的新值

  • 例如,nginx必须替换为$(replace_image_repo nginx)应该是的输出nexus.local/nginx

  • 是否可以匹配当前值?

  • 如果是这样,是否可以调用 Bash 函数“yq -y '.... $(HERE)'”?