
mikefarah/yq!Build !Docker Pulls !Github Releases (by Release) !Go Report
一款轻量级且可移植的命令行YAML处理器。
本项目旨在成为YAML文件的jq或sed工具。
V4版本现已正式发布,与V3版本有较大差异(抱歉带来迁移成本),但它更接近jq,采用类似的表达式语法,因此支持更复杂的功能!
如果您一直在使用V3版本并希望/需要升级,请查看升级指南。
bashdocker run --rm -v "${PWD}":/workdir mikefarah/yq <command> [flags] [expression ]FILE...
bashdocker run --rm -it -v "${PWD}":/workdir mikefarah/yq sh
创建bash函数可避免输入完整的docker命令,更为便捷:
bashyq() { docker run --rm -i -v "${PWD}":/workdir mikefarah/yq "$@" }
brew install yqsnap install yq(注意严格限制模式下的文件访问方式)/usr/bin/yq并添加执行权限GO111MODULE=on go get github.com/mikefarah/yq/v4社区支持的安装方式(可能不是最新版本):Windows (choco install yq)、MacPorts、Alpine Linux、Ubuntu (Debian包)等
jq的语法,适用于YAML和JSON文件处理适用于需要在命令行环境中高效处理YAML文件的场景,包括但不限于:
yq [flags] yq [command]
eval:对每个YAML文件中的每个文档应用表达式eval-all:加载所有YAML文件的所有文档并运行一次表达式help:获取命令帮助shell-completion:生成补全脚本| 标志 | 描述 |
|---|---|
-C, --colors | 强制彩色输出 |
-e, --exit-status | 无匹配项或返回null/false时设置退出状态 |
-h, --help | 显示帮助信息 |
-I, --indent int | 设置输出缩进级别(默认2) |
-i, --inplace | 原地更新第一个YAML文件 |
-M, --no-colors | 强制无彩色输出 |
-N, --no-doc | 不打印文档分隔符(---) |
-n, --null-input | 不读取输入,仅计算给定表达式(用于创建YAML文档) |
-j, --tojson | 输出为JSON,缩进设为0时单行显示 |
-v, --verbose | 详细模式 |
-V, --version | 打印版本信息并退出 |
bashyq e '.a.b | length' f1.yml f2.yml
一次性处理文件:
bashdocker run --rm -v "${PWD}":/workdir mikefarah/yq e '.a.b | length' f1.yml f2.yml
交互式运行:
bashdocker run --rm -it -v "${PWD}":/workdir mikefarah/yq sh
yq尝试尽可能保留注释位置和空白字符,但并非支持所有场景(详见:[***]
更多详细高级用法请参见官方文档。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务