Golang命令行工具dasel:查询和修改数据结构
Golang命令行工具dasel:查询和修改数据结构 大家好,
我刚刚发布了 dasel 的 v1.4.0 版本:https://github.com/TomWright/dasel
Dasel 允许您从命令行查询和更新数据结构。它类似于 jq/yq,但支持 JSON、TOML、YAML、XML 和 CSV 格式,并且无需任何运行时依赖(感谢 Go)。
我希望您觉得这个工具有用,并欢迎所有反馈!
1 回复
更多关于Golang命令行工具dasel:查询和修改数据结构的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
dasel 是一个功能强大的命令行工具,用于查询和修改多种格式的数据结构。它支持 JSON、YAML、TOML、XML 和 CSV 格式,且无需外部依赖,非常适合在自动化脚本或数据处理场景中使用。以下是一些常见用法示例:
1. 查询 JSON 数据
假设有一个 data.json 文件:
{
"user": {
"name": "Alice",
"age": 30,
"skills": ["Go", "Python"]
}
}
查询 name 字段:
dasel select -f data.json ".user.name"
# 输出: "Alice"
2. 修改 YAML 数据
假设有一个 config.yaml 文件:
server:
port: 8080
host: "localhost"
将 port 修改为 9090:
dasel put -f config.yaml -t yaml -v 9090 ".server.port"
3. 转换格式(JSON 转 YAML)
dasel select -f data.json -t yaml
# 输出 YAML 格式的内容
4. 处理嵌套数组
查询 skills 中的第一项:
dasel select -f data.json ".user.skills.[0]"
# 输出: "Go"
5. 更新 CSV 数据
假设有一个 data.csv 文件:
name,age
Alice,30
Bob,25
将第二行的 age 改为 26:
dasel put -f data.csv -t csv -v 26 ".[1].age"
6. 多格式支持示例
# 从 JSON 中提取值并输出为 TOML
dasel select -f data.json -t toml ".user"
# 从 XML 中查询
dasel select -f data.xml ".root.element"
dasel 的语法简洁,且跨格式一致性高,减少了学习不同工具(如 jq、yq)的成本。对于需要批量处理配置或数据的场景,它可以显著提升效率。

