首页/系统/Linux 运维命令速查/yq 查询与编辑 YAML
文本处理77 条

yq 查询与编辑 YAML

YAML 世界的 jq:读取/筛选/改写 K8s 清单与 CI 配置;mikefarah 版支持 -i 原地编辑与 JSON 互转。

Linux 运维命令速查系统更新于 2026-10-12
用途YAML 读取、过滤、原地编辑
语法yq '表达式' 文件.yaml
注意mikefarah/yq(Go)与 kislyuk/yq(Python 包装 jq)是两个项目,本条目为前者 v4

常用示例

常用示例
yq '.spec.containers[].image' deploy.yaml       # 提取字段
yq '.services | keys' docker-compose.yml         # 列服务名
yq '.[] | select(.name == "app")' list.yaml      # 条件筛选
yq -i '.replicas = 3' deploy.yaml                # 原地修改
yq -o=json '.' config.yaml > config.json         # 转 JSON
改 K8s 配置先无 -i 预览输出,确认后再 -i 落地;改完用 git diff 复核改动行。

易错点

  • 两个同名 yq 混用会迷惑:--version 看清是 mikefarah 版还是 Python 版,表达式写法有差异
  • -i 原地重写会规范格式:注释与空行可能丢失,先提交 git 再改

数据来源与参考

  • mikefarah/yq 官方文档(GitHub README)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌