关于 Dasel
Dasel 是处理结构化数据的命令行工具,命令为 dasel。通过 -f 指定文件并用选择器读取字段,也可用 put 写入带类型的值,输入输出便于接入管道。
主要功能
- 01用 dasel -f config.yml ".server.port" 读取字段
- 02用 dasel put 写入值并以 -t int 指定类型
- 03支持 YAML、JSON 等配置文件
- 04适合管道的输入与输出
- 05可重复执行的数据处理
适用场景
- 01在脚本中读取配置里的端口号
- 02把 config.json 的 port 改为 3000
- 03编码 Agent 跨格式统一修改配置
安装
选择你的系统或包管理器,复制命令到终端运行。
$
安装完成后运行dasel --version确认安装成功。
命令示例
常用命令按使用顺序排列。
01
02
详细介绍
Dasel
Dasel(Data-Select 的简称)是一款命令行工具和库,可用于查询、修改和转换 JSON、YAML、TOML、XML、CSV 和 KDL 等数据结构。
它提供一致且强大的语法来遍历和更新数据,适用于开发人员、DevOps 和数据整理任务。
功能
- 多格式支持:JSON、YAML、TOML、XML、CSV、HCL、INI、KDL。
- 统一查询语法:使用相同的选择器访问任何格式的数据。
- 查询和搜索:使用直观的语法提取值、列表或结构。
- 原地修改:直接更新、插入或删除结构化文件中的值。
- 格式转换:轻松将数据从 JSON 转换为 YAML、从 TOML 转换为 JSON 等。
- 适合脚本使用:可轻松集成到 shell 脚本和管道中。
- 库支持:可在 Go 项目中导入和使用。
安装
Homebrew(macOS/Linux)
brew install dasel
Go 安装
go install github.com/tomwright/dasel/v3/cmd/dasel@master
预编译二进制文件
Linux、macOS 和 Windows 的预编译二进制文件可在 Releases 页面获取。
以上方式都不适用?
如需了解其他选项,请参阅安装文档。
Shell 补全
Dasel 支持 Bash、Zsh、Fish 和 PowerShell 的制表符补全。为你的 shell 生成并加载补全脚本:
# Bash
source <(dasel completion bash)
# Zsh
source <(dasel completion zsh)
# Fish
dasel completion fish | source
# PowerShell
dasel completion powershell | Out-String | Invoke-Expression
如需永久安装说明,请参阅 shell 补全文档。
Man 页面
生成并查看 man 页面:
dasel man | man -l -
基本用法
选择值
默认情况下,Dasel 会计算最后一个选择器并打印结果。
echo '{"foo": {"bar": "baz"}}' | dasel -i json 'foo.bar'
# Output: "baz"
修改值
就地更新值:
echo '{"foo": {"bar": "baz"}}' | dasel -i json 'foo.bar = "bong"'
# Output: "bong"
使用 --root 在修改后输出完整文档:
echo '{"foo": {"bar": "baz"}}' | dasel -i json --root 'foo.bar = "bong"'
# Output:
{
"foo": {
"bar": "bong"
}
}
根据之前的值更新值:
echo '[1,2,3,4,5]' | dasel -i json --root 'each($this = $this*2)'
# Output:
[
2,
4,
6,
8,
10
]
格式转换
cat data.json | dasel -i json -o yaml
递归下降(..)
搜索所有嵌套对象和数组,查找匹配的键或索引。
echo '{"foo": {"bar": "baz"}}' | dasel -i json '..bar'
# Output:
[
"baz"
]
搜索(search)
在结构中的任意位置查找所有符合条件的值。
echo '{"foo": {"bar": "baz"}}' | dasel -i json 'search(bar == "baz")'
# Output:
[
{
"bar": "baz"
}
]
文档
完整文档请访问 daseldocs.tomwright.me。
贡献
欢迎贡献!详情请参阅 CONTRIBUTING.md。
许可证
MIT 许可证。详情请参阅 LICENSE。
Stargazers 随时间变化
评论
支持 Markdown