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 的语法简洁,且跨格式一致性高,减少了学习不同工具(如 jqyq)的成本。对于需要批量处理配置或数据的场景,它可以显著提升效率。

回到顶部