什么是 yq?
yq 是一款轻量、便携的结构化数据命令行处理器——支持 YAML、JSON、XML、CSV、TOML 和 properties 文件,由 Mike Farah 使用 Go 编写。它采用类 jq 语法,您在 jq 上学到的一切都可以直接迁移:在脚本和流水线中查询、转换、合并以及原地编辑文件,只需一个零依赖的二进制文件。
yq jq 封装器;本软件包可干净地取代后者,且不需要 python 或 jq。
apt upgrade 即可获取免费通道内的最新构建。
⚡ yq 的主要特性
🔄 六种格式
YAML、JSON、XML、CSV/TSV、TOML 和 properties——读取一种、输出另一种:yq -o=json '.' config.yaml 一步完成转换。
🧠 类 jq 语法
熟悉的路径、管道、函数和运算符。只要会写 jq 过滤器,就已经会在 YAML 上使用 yq。
✏️ 原地编辑
yq -i '.spec.replicas = 3' deploy.yaml——以脚本方式编辑 Kubernetes 清单、CI 配置和 Compose 文件,注释完好保留。
📦 零依赖
单个静态 Go 二进制文件。没有运行时、没有库、没有 python——是精简容器和 CI runner 的理想选择。
🔀 合并与锚点
深度合并多个文件、解析 YAML 锚点和别名、处理多文档流——把 YAML 的疑难场景都处理得当。
📖 附带 man 手册页
本软件包在二进制文件之外还提供完整的 man 手册页——man yq 可离线使用,符合 Debian 规范。
🏆 为什么用 apt 安装?
- 适合大规模部署:在基础镜像中固定一个仓库,每台服务器、每个容器和 CI runner 都能获得同样新版的 yq
- 告别 curl 下载二进制:使用 GPG 签名的仓库,而不是手动把二进制文件下载到
/usr/local/bin - 正确的 yq:在所有机器上保证 mikefarah/yq v4 语义——不会因某些机器上的 python 封装器而遭遇意外
- 自动更新:通过
apt upgrade自动获取免费通道的最新构建 - 多架构支持:amd64、arm64、armhf、ppc64el、s390x、riscv64 和 i386
📦 从 deb-free.griffo.io 安装
步骤 1:添加仓库
步骤 2:安装 yq
🚀 首次运行
📦 软件包构建仓库
Debian 软件包在此 GitHub 仓库中自动构建和维护:
- 📂 yq-debian - 最新发布版本构建
🔗 相关软件包
也可从 deb-free.griffo.io 获取:
- k9s - Kubernetes TUI——与 yq 搭配处理清单文件再合适不过
- lazydocker - Docker TUI,管理您刚编辑好的 Compose 文件
- just - 命令运行器,封装您的 yq 单行命令
💝 支持本项目
如果这个仓库为您节省了时间和精力,请考虑支持它!