用途:在修改、转换或变换结构化数据时使用 dasel v3,支持 YAML、TOML、JSON、XML、HCL、INI 等格式的配置值修改、格式互转、批量数组更新以及数据结构增删与重组。
主要能力:v3 不再提供 put 和 delete 子命令,所有修改均通过赋值表达式配合 --root 输出完整文档;可设置单个或嵌套字段,例如 cat config.yaml | dasel -i yaml --root 'server.port = 9090'。格式转换通过不同输入输出标志实现,如 cat data.json | dasel -i json -o yaml > data.yaml。数组操作包括追加元素 [$this..., 4]、用 each() 批量更新 items.each(price = price * 1.1),以及用 filter() 和 map() 先筛选再变换。对象可通过展开操作符合并,例如 { $root..., "newKey": "value" };删除字段只能重建对象,如 { name, email };重命名字段用 { "new_name": old_name }。支持变量赋值与分号串联多步变换,也支持 if/else 条件赋值。
使用方式与限制:切勿将输出重定向到同一输入文件,否则会在读取前截断导致数据丢失;应先预览输出,再写入临时文件并重命名,例如 cat config.yaml | dasel -i yaml --root 'port = 9090' > config_tmp.yaml && mv config_tmp.yaml config.yaml。具体命令需按原样执行,其他细节暂未提供。