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尝试尽可能保留注释位置和空白字符,但并非支持所有场景(详见:[***]
更多详细高级用法请参见官方文档。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务