问题标签 [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.
yaml - 使用 yq v4.x 在 yaml 文件中插入一个属性的多行
input.yaml 中存储了一个动态属性,我想将其插入到现有的 yaml 文件中(命名为 original.yaml)。该属性有多行。
这两个文件看起来像:input.yaml:
原始.yaml:
我的目标是将 input.yaml 内容放在 original.yaml 下spec.names
。我尝试使用 yq 版本 4:
我得到了什么:</p>
第 5 行有一个不需要- |-
的内容,我希望得到以下输出:
任何建议将不胜感激。
powershell - yq 抓取所有不包含单词 powershell 的元素
我想检索格式repository:tag部分中不包含cmp
的所有图像的列表。我正在尝试使用,但我面临的问题很少。repository
yq
我的yaml文件结构:
我的 Powershell 脚本:
第一个 yq 表达式添加- repository
到输出列表的末尾,$keys
因此它看起来像这样:
为什么我要- repository
走到最后$keys
?
有没有更好的方法用 yq 转换 yaml 以获取输出列表包含:repository:tag?
linux - 从 shell 脚本中提取 YAML 中的变量
我有一个由以下内容组成的 YAML 文件:
我想提取最后一行的最后一个值(在这种情况下,5
)取消 shell 脚本。使用这篇文章,我编码:
但由于我是 shell 的新手,我找不到如何提取这些值。我想要的只是:
有人可以帮帮我吗?
提前致谢!
json - 如何使用 jq 对 json 进行分组,然后转换为 yaml
我有这个要转换的 json。
我试过这个,非常接近:
jq '. | group_by(.externalGroup)[] | {(.[0].externalGroup): map(.groupId)}'
我明白了:
但这不能用 yq 正确转换。它需要看起来像这样:
为了得到类似的东西:
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.
yaml - YQ 4.7.0 - 如何遍历每个数组元素并更新值
我有一个 yaml:
yaml 可以在数组中有多个“name:”元素,我想循环所有“name”元素并将键“username:”的值更改为“xyz-321”。生成的 YAML 应如下所示:
我尝试使用以下 yq 命令,但它没有更改所需键的值:
任何指针表示赞赏。
yq - yq版本4中如何添加列表项
我正在将脚本从 yq 3 迁移到 yq 4,但无法让一件事正常工作。
我有以下 YAML 并想在 targetNamespaces 之后添加一个列表项:
所以输出应该是:
此命令用于更改命名空间:
当我运行以下命令时,出现错误:
我似乎无法正确获取新的 yq 命令结构...
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 的合并功能,我将不胜感激。
homebrew - 错误:yq@3 已被禁用,因为它未在上游维护!如何安装禁用的 brew Formulae?
我正在尝试在运行 brew install yq@3 的 Mac 上安装 yq@3 ,但出现错误:
我看到它在他们的网站上https://formulae.brew.sh/formula/yq@3#default但似乎不再受支持。
我仍然需要安装它,因为我们工作的项目正在使用这个特定版本。
我正在考虑的唯一方法是下载源代码,自己构建并将其添加到路径中,但我认为可能有更简单的解决方案。
有什么建议吗?
谢谢!
json - 如何将 JSON 作为字符串插入另一个 JSON
我正在编写脚本(Azure 管道的 bash 脚本),我需要组合来自不同变量的 JSON。例如,我有:
因此,如您所见,我有几个字符串变量和一个由 JSON 组成的变量。
我需要将这些变量与这种格式结合起来(我不能:():
但是这种组合不起作用,我有一个类似的字符串:
这是不正确和有效的 JSON。
如何将现有的 JSON(已经用双引号格式化)与其他变量结合起来?我正在使用 bash / console / yq utilite(将 yaml 转换为 json)