当前位置: 首页 > 工具软件 > yq > 使用案例 >

yq使用示例

许博
2023-12-01

yq使用示例

yq 是一个轻量级且便携的命令行 YAML、JSON 和 XML 处理器。它使用类似于 jq 的语法,但可以处理 yaml 文件以及 json、xml、properties、csv 和 tsv。它尚未支持 jq 的所有功能,但它支持最常用的操作和函数,并且不断添加更多功能。¹

下面是一些 yq 的使用示例:

  • 读取值:yq '.a.b [0].c' file.yaml
  • 从 STDIN 管道:yq '.a.b [0].c' < file.yaml
  • 更新 yaml 文件,就地更新:yq -i '.a.b [0].c = \"cool\"' file.yaml
  • 使用环境变量更新:NAME=mike yq -i '.a.b [0].c = strenv (NAME)' file.yaml
  • 合并多个文件:yq ea '. as $item ireduce ( {}; . * $item )' path/to/ * .yml
  • 对 yaml 文件进行多次更新:yq -i ' .a.b [0].c = \"cool\" | .x.y.z = \"foobar\" | .person.name = strenv (NAME) ' file.yaml
  • 将 JSON 转换为 YAML:cat file.json | yq -P e - > file.yaml

yq select用法

您可以使用 yq 的 select 操作符来查找特定的值。例如,让我们在 YAML 文件中查找 ‘Foo’:yq '. [] | select (. == \"Foo\")' personal_data.yaml。请注意,使用管道运算符 | 将根节点的值传递给 select 操作符。

您还可以使用通配符 * 来查找以特定字符串开头的所有值。例如,让我们在 street_address 节点中查找所有以 ‘My’ 开头的值:yq '.street_address [] | select (. == \"My*\")' personal_data.yaml

示例

yq e -i 'select(.kind == "Deployment").metadata.namespace = "zxl-system"' operator.yaml
 类似资料: