用途:dasel 是单二进制 CLI,用统一查询语法在 JSON、YAML、TOML、XML、CSV、HCL、INI 之间查询、修改和转换结构化数据,可替代 jq、yq、xmllint。资料记录写作时稳定版为 v3.2.3(2026-02-23)。
主要能力:支持上述七种格式;提供点号选择器、数组索引与切片、递归下降、对象构造、展开、变量、条件表达式;内置函数包括 filter、map、each、search、sortBy、has、get、contains、len、join、sum、add、max、min、merge、keys、reverse、typeOf、toString、toInt、toFloat、base64e、base64d、parse、readFile、ignore 等。
使用方式:输入始终来自 stdin,格式必须用 -i 显式指定,-o 指定输出格式,只给一个时另一个默认相同,都不给则默认 json(可用 ~/dasel.yaml 的 default_format 配置)。常用命令如 echo '{"foo": "bar"}' | dasel -i json 'foo';修改并输出完整文档用 --root,如 echo '{"port": 3000}' | dasel -i json --root 'server.port = 8080';转换格式如 cat data.json | dasel -i json -o yaml。其他标志有 --var、--compact、--rw-flag、--read-flag、--write-flag、-c/--config。
限制:v3 不根据文件扩展名自动识别格式,也没有 -f/--file 标志;v3 移除了 put 和 delete 子命令,改用 --root 内联赋值;v2 语法与 v3 不兼容;CLI 框架由 Cobra 改为 Kong,Go 模块路径改为 github.com/tomwright/dasel/v3。