找回密码
 立即注册
首页 业界区 安全 数据处理神器!一款强大的数据处理命令行工具! ...

数据处理神器!一款强大的数据处理命令行工具!

骆熙华 7 天前
大家好,我是 Java陈序员。
我们在日常开发中,经常会操作使用一些 JSON、YAML、XML 等格式的数据,对数据进行增删改查和转换操作。
今天,给大家分享一款强大的数据处理命令行工具,一行命令搞定数据操作!
关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。
项目介绍

dasel —— 一款用于处理和操作多种数据格式的命令行工具,支持对 JSON、YAML、TOML、XML 和 CSV 格式数据进行查询、修改、添加、删除和转换。
功能特色

  • 多格式支持:支持 JSON、YAML、TOML、XML 和 CSV 等常见数据格式
  • 数据查询与修改:可以通过类似路径选择器的语法,快速定位和修改数据
  • 格式转换:支持在不同数据格式之间进行转换,例如将 JSON 转换为 YAML
  • 管道操作:支持与其他命令行工具结合使用,方便集成到自动化脚本中
  • Go 包集成:也可以作为 Go 语言的库集成到其他项目中
工具安装

dasel 支持多种安装方式和多种操作系统,可通过如下方式安装。

  • 离线安装
从最新发布页面下载编译好的二进制文件。
  1. https://github.com/TomWright/dasel/releases
复制代码

  • 使用 Homebrew 一键安装
  1. brew install dasel
复制代码

  • 使用 Docker 安装
  1. echo '{"name": "Java陈序员"}' | docker run -i --rm ghcr.io/tomwright/dasel:latest -r json '.name'
  2. "Java陈序员"
复制代码

  • 使用 Go 安装开发版本
  1. go install github.com/tomwright/dasel/v2/cmd/dasel@master
复制代码
快速上手

查询操作


  • 从 JSON 文本中查询数据
  1. echo '{"name": "Java陈序员"}' | dasel -r json 'name'
复制代码
输出:"Java陈序员"。
-r 参数代表读取数据,后面带上数据类型,如 json、yaml 等。


  • 从 JSON 文件数据中查询数据,使用 -f 参数指定文件名
  1. dasel -f example.json -r json 'name'
复制代码
输出:"Java陈序员"。
-f 参数指定文件名。
更新操作


  • 修改 JSON 文本数据
  1. echo '{"name":{"first":"Java","last":"CodeChen"}}' |
  2.   dasel put -r json -t string -v Java陈序员 'name.first'
复制代码
输出:
  1. {
  2.   "name": {
  3.     "first": "Java陈序员",
  4.     "last": "CodeChen"
  5.   }
  6. }
复制代码
put 参数代表对数据进行修改操作
-t 参数代表数据类型,可以是 string、int、bool
-v 参数代表修改后的值


  • 修改 JSON 文本数据
  1. dasel put -f example.json -r json -t string -v Java陈序员 'name'
复制代码
删除操作


  • 删除 JSON 文本数据
  1. echo '{"name":{"first":"Java陈序员","last":"CodeChen"}}' |
  2.   dasel delete -r json 'name.last'
复制代码
输出:
  1. {
  2.   "name": {
  3.     "first": "Java陈序员"
  4.   }
  5. }
复制代码
delete 参数代表对数据进行删除操作


  • 删除 JSON 文本数据
  1. dasel delete -f example.json -r json 'name'
复制代码
转换操作


  • JSON 转 YAML
  1. echo '{"name": "Java陈序员"}' | dasel -r json -w yaml
复制代码
输出:name: Java陈序员
-w 参数代表转换后的数据类型,后面带上数据类型,如 json、yaml 等。


  • JSON 转 YAML
  1. echo 'name: Java陈序员' | dasel -r yaml -w json
复制代码
输出:
  1. {
  2.   "name": "Java陈序员"
  3. }
复制代码
高级操作


  • 匹配数据
  1. echo '{"numbers":[1,2,3,4,5,6,7,8,9]}' | dasel -r json 'equal(numbers.[0],1)'         
  2. true
复制代码

  • 过滤数据
  1. echo '[
  2. >   {"label":"x","allow":true},
  3. >   {"label":"y","allow":false},
  4. >   {"label":"z","allow":true}
  5. >   ]' | dasel -r json 'all().filter(allow)'
  6. {
  7.   "label": "x",
  8.   "allow": true
  9. }
  10. {
  11.   "label": "z",
  12.   "allow": true
  13. }
复制代码

  • 合并数据
  1. echo '{
  2.   "name": {
  3.     "first":"Tom",
  4.     "last":"Wright"
  5.   },
  6.   "firstNames": [
  7.     "Jim",
  8.     "Bob"
  9.   ]
  10. }' | dasel -r json 'merge(name.first,firstNames.all()).all()'
  11. [
  12.   "Tom",
  13.   "Jim",
  14.   "Bob"
  15. ]
复制代码
dasel 还有其他强大的命令参数以及更多的数据类型操作,具体使用可参考官方文档:
  1. https://daseldocs.tomwright.me/
复制代码
dasel 提供了简单易用的命令行接口和强大的功能,适合在开发中快速处理结构化数据。快去安装体验吧~
  1. https://github.com/TomWright/dasel
复制代码
最后

推荐的开源项目已经收录到 GitHub 项目,欢迎 Star:
  1. https://github.com/chenyl8848/great-open-source-project
复制代码
或者访问网站,进行在线浏览:
  1. https://chencoding.top:8090/#/
复制代码
1.png

我创建了一个开源项目交流群,方便大家在群里交流、讨论开源项目
但是任何人在群里打任何广告,都会被 T 掉
如果你对这个交流群感兴趣或者在使用开源项目中遇到问题,可以通过如下方式进群
关注微信公众号:【Java陈序员】,回复【开源项目交流群】进群,或者通过公众号下方的菜单添加个人微信,并备注【开源项目交流群】,通过后拉你进群
大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册