问题标签 [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 投票
1 回答
328 浏览

yaml - 使用 yq v4.x 在 yaml 文件中插入一个属性的多行

input.yaml 中存储了一个动态属性,我想将其插入到现有的 yaml 文件中(命名为 original.yaml)。该属性有多行。

这两个文件看起来像:input.yaml:

原始.yaml:

我的目标是将 input.yaml 内容放在 original.yaml 下spec.names。我尝试使用 yq 版本 4:

我得到了什么:</p>

第 5 行有一个不需要- |-的内容,我希望得到以下输出:

任何建议将不胜感激。

0 投票
0 回答
73 浏览

powershell - yq 抓取所有不包含单词 powershell 的元素

我想检索格式repository:tag部分中包含cmp的所有图像的列表。我正在尝试使用,但我面临的问题很少。repositoryyq

我的yaml文件结构:

我的 Powershell 脚本:

第一个 yq 表达式添加- repository到输出列表的末尾,$keys因此它看起来像这样:

为什么我要- repository走到最后$keys

有没有更好的方法用 yq 转换 yaml 以获取输出列表包含:repository:tag?

0 投票
3 回答
430 浏览

linux - 从 shell 脚本中提取 YAML 中的变量

我有一个由以下内容组成的 YAML 文件:

我想提取最后一行的最后一个值(在这种情况下,5)取消 shell 脚本。使用这篇文章,我编码:

但由于我是 shell 的新手,我找不到如何提取这些值。我想要的只是:

有人可以帮帮我吗?

提前致谢!

0 投票
2 回答
174 浏览

json - 如何使用 jq 对 json 进行分组,然后转换为 yaml

我有这个要转换的 json。

我试过这个,非常接近: jq '. | group_by(.externalGroup)[] | {(.[0].externalGroup): map(.groupId)}'

我明白了:

但这不能用 yq 正确转换。它需要看起来像这样:

为了得到类似的东西:

0 投票
1 回答
395 浏览

awk - Compare two yaml file and get matching elements from first file based on key

I am trying to compare these two YAML files and trying to extract the key-value pair from the first file if key matches between these two files. Look at the expected output for more clarity.

YAML File 1:

YAML File 2:

Expected output:

My Attempt:

It works when I don't have curly braces in my values, but awk fails when I have {} in my value in yaml file.

0 投票
1 回答
128 浏览

yaml - YQ 4.7.0 - 如何遍历每个数组元素并更新值

我有一个 yaml:

yaml 可以在数组中有多个“name:”元素,我想循环所有“name”元素并将键“username:”的值更改为“xyz-321”。生成的 YAML 应如下所示:

我尝试使用以下 yq 命令,但它没有更改所需键的值:

任何指针表示赞赏。

0 投票
1 回答
205 浏览

yq - yq版本4中如何添加列表项

我正在将脚本从 yq 3 迁移到 yq 4,但无法让一件事正常工作。

我有以下 YAML 并想在 targetNamespaces 之后添加一个列表项:

所以输出应该是:

此命令用于更改命名空间:

当我运行以下命令时,出现错误:

我似乎无法正确获取新的 yq 命令结构...

0 投票
1 回答
456 浏览

yaml - 从 v3 升级到 yq v4 - 合并 YAML 文件

我一直在使用 yq v3 使用以下命令合并 yaml 文件。

yq m <yaml_file> <yaml_file2> <yaml_file3>

该命令按此处概述的方式工作

例如,假设我有以下 3 个 yaml 文件。

培训实验室account.yml

帐户.yml

网络.yml

当我执行时yq m training-lab-account.yml account.yml network.yml,我得到以下输出。

基本上,account.yml 和 network.yml 被合并到 training-lab-account.yml 中,而不会覆盖 training-lab-account.yml 中的内容。

yq v4 不再支持“m”标志合并。其实我觉得yq@4是一个全新的软件,和yq@3完全不同。

长话短说,我正在尝试eval-all按照此处概述的方式合并:yq eval-all --inplace 'select(fileIndex == 0) * select(fileIndex == 1)' f1.yml f2.yml

不幸的是,这从 f2.yml 覆盖了 f1.yml 中的内容——这不是合并在 yq@3 中的行为方式。

由于 yq@3 已弃用,我需要升级到 yq@4。对于如何在 yq@4 中复制 yq@3 的合并功能,我将不胜感激。

0 投票
1 回答
1532 浏览

homebrew - 错误:yq@3 已被禁用,因为它未在上游维护!如何安装禁用的 brew Formulae?

我正在尝试在运行 brew install yq@3 的 Mac 上安装 yq@3 ,但出现错误:

我看到它在他们的网站上https://formulae.brew.sh/formula/yq@3#default但似乎不再受支持。

我仍然需要安装它,因为我们工作的项目正在使用这个特定版本。

我正在考虑的唯一方法是下载源代码,自己构建并将其添加到路径中,但我认为可能有更简单的解决方案。

有什么建议吗?

谢谢!

0 投票
1 回答
44 浏览

json - 如何将 JSON 作为字符串插入另一个 JSON

我正在编写脚本(Azure 管道的 bash 脚本),我需要组合来自不同变量的 JSON。例如,我有:

因此,如您所见,我有几个字符串变量和一个由 JSON 组成的变量。

我需要将这些变量与这种格式结合起来(我不能:():

但是这种组合不起作用,我有一个类似的字符串:

这是不正确和有效的 JSON。

如何将现有的 JSON(已经用双引号格式化)与其他变量结合起来?我正在使用 bash / console / yq utilite(将 yaml 转换为 json)