用于构建命令行工具的 Go 声明式库,支持子命令、参数与 shell 补全。
TomWright/dasel
一个命令行工具和 Go 库,用统一的选择器语法查询和修改 JSON、YAML、TOML、XML 等结构化数据。
- Star
- 8,050
- Fork
- 178
- 未关闭 Issue
- 25
- 最近提交
- 10天前
这是什么?
Dasel(Data-Select 的缩写)是一个命令行工具,可以用统一的选择器语法读取、修改和转换结构化数据。同一套表达式适用于 JSON、YAML、TOML、XML、CSV、HCL、INI 和 KDL,不必为每种格式单独学习一套查询方式。
除了提取数据,Dasel 还能直接原地修改文件,支持更新、插入和删除字段,也能在 JSON、YAML、TOML 等格式之间互相转换。它同时支持递归查找(..)和 search 功能,可以在整个文档中匹配满足条件的值。
项目可通过 Homebrew、go install 或预编译二进制安装,也可作为 Go 库导入使用。命令行支持 Bash、Zsh、Fish 和 PowerShell 的自动补全。
核心功能
- 01在 JSON、YAML、TOML、XML、CSV、HCL、INI、KDL 之间使用同一套选择器语法。
- 02直接在结构化文件中更新、插入或删除字段。
- 03在支持的数据格式之间进行转换。
- 04支持递归查找和按条件搜索整个文档。
- 05为 Bash、Zsh、Fish 和 PowerShell 提供自动补全。
- 06可作为 Go 库导入到项目中使用。
适用场景
- 在 shell 脚本或 CI 流水线中修改 YAML、JSON 配置文件的字段。
- 将配置文件从一种格式转换为另一种格式。
- 在终端中从 API 响应或数据文件里提取特定字段。
- 在 DevOps 流程中批量更新多个结构化文件中的值。
快速上手
- 1
使用 Homebrew 安装(macOS/Linux)
brew install dasel - 2
或使用 Go 安装
go install github.com/tomwright/dasel/v3/cmd/dasel@master - 3
从 Releases 页面下载预编译二进制文件(Linux、macOS、Windows)
- 4
对 JSON 输入运行第一个查询
echo '{"foo": {"bar": "baz"}}' | dasel -i json 'foo.bar'
收录于专题
标签
常见问题
- dasel 是什么?
- 一个命令行工具和 Go 库,用统一的选择器语法查询和修改 JSON、YAML、TOML、XML 等结构化数据。 Dasel(Data-Select 的缩写)是一个命令行工具,可以用统一的选择器语法读取、修改和转换结构化数据。同一套表达式适用于 JSON、YAML、TOML、XML、CSV、HCL、INI 和 KDL,不必为每种格式单独学习一套查询方式。
- dasel 可以免费使用吗?用的什么许可证?
- dasel 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- dasel 还在维护吗?
- 活跃维护中。dasel 最近一次提交是在 2026年10月15日。
- dasel 适合用来做什么?
- 在 shell 脚本或 CI 流水线中修改 YAML、JSON 配置文件的字段。 将配置文件从一种格式转换为另一种格式。 在终端中从 API 响应或数据文件里提取特定字段。 在 DevOps 流程中批量更新多个结构化文件中的值。
- dasel 怎么安装和运行?
- 使用 Homebrew 安装(macOS/Linux): brew install dasel 或使用 Go 安装: go install github.com/tomwright/dasel/v3/cmd/dasel@master 从 Releases 页面下载预编译二进制文件(Linux、macOS、Windows) 对 JSON 输入运行第一个查询: echo '{"foo": {"bar": "baz"}}' | dasel -i json 'foo.bar'
- 在哪里获取 dasel?
- 源代码和安装说明在 GitHub 上:https://github.com/TomWright/dasel
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
2.4万+6 本周1850GoMIT更新于 13小时前
开源 JSON 编辑器,可将 JSON、YAML、CSV、XML 转为可交互的图形。
4.5万+6 本周3577TypeScriptApache-2.0更新于 上个月
面向网络应用的跨平台 C++ 类库,涵盖 HTTP、网络通信、数据库、XML/JSON 和日志等常用功能。
94892325C++Other更新于 昨天
一个快速的 Python 序列化与校验库,基于类型注解编解码 JSON、MessagePack、YAML 和 TOML。
4184+2 本周221PythonBSD-3-Clause更新于 前天
用 Rust 编写的 jq 克隆版,注重正确性、速度与实现简洁,可作为命令行工具或 Rust 库使用。
3809126RustMIT更新于 4天前
面向 Ghostty 终端的网页版可视化配置生成器,可导出精简的配置文件。
4314+2 本周85TypeScriptApache-2.0更新于 昨天