YAML/JSON/XML 处理器,语法类似 jq
yq 有 Mike Farah 的 Go 版和 Python 版,两者语法不同;下面以 Go 版(mikefarah/yq)为例。它适合读写 Kubernetes 清单、CI 配置和多文档 YAML。
yq '.spec.replicas' deploy.yaml
yq -i '.metadata.labels.env = "prod"' deploy.yaml
yq -o=json '.' config.yaml
yq eval-all 'select(.kind == "Deployment")' manifests/*.yaml
yq --version 和语法差异很大。-i 是原地修改;改前备份,或用 -o 先看输出。---)用 eval-all;普通 . 只处理第一份。--arg 比拼接更安全。"yes" 和 yes 不同。yq 当成 schema 校验器;结构校验用 kubeconform/JSON Schema。