動態

詳情 返回 返回

數據處理神器!一款強大的數據處理命令行工具! - 動態 詳情

大家好,我是 Java陳序員

我們在日常開發中,經常會操作使用一些 JSON、YAML、XML 等格式的數據,對數據進行增刪改查和轉換操作。

今天,給大家分享一款強大的數據處理命令行工具,一行命令搞定數據操作!

關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。

項目介紹

dasel —— 一款用於處理和操作多種數據格式的命令行工具,支持對 JSON、YAML、TOML、XML 和 CSV 格式數據進行查詢、修改、添加、刪除和轉換。

功能特色

  • 多格式支持:支持 JSON、YAML、TOML、XML 和 CSV 等常見數據格式
  • 數據查詢與修改:可以通過類似路徑選擇器的語法,快速定位和修改數據
  • 格式轉換:支持在不同數據格式之間進行轉換,例如將 JSON 轉換為 YAML
  • 管道操作:支持與其他命令行工具結合使用,方便集成到自動化腳本中
  • Go 包集成:也可以作為 Go 語言的庫集成到其他項目中

工具安裝

dasel 支持多種安裝方式和多種操作系統,可通過如下方式安裝。

  • 離線安裝

從最新發布頁面下載編譯好的二進制文件。

https://github.com/TomWright/dasel/releases
  • 使用 Homebrew 一鍵安裝

    brew install dasel
  • 使用 Docker 安裝

    echo '{"name": "Java陳序員"}' | docker run -i --rm ghcr.io/tomwright/dasel:latest -r json '.name'
    "Java陳序員"
  • 使用 Go 安裝開發版本

    go install github.com/tomwright/dasel/v2/cmd/dasel@master

快速上手

查詢操作

  • 從 JSON 文本中查詢數據

    echo '{"name": "Java陳序員"}' | dasel -r json 'name'

    輸出:"Java陳序員"。

-r 參數代表讀取數據,後面帶上數據類型,如 jsonyaml 等。
  • 從 JSON 文件數據中查詢數據,使用 -f 參數指定文件名
dasel -f example.json -r json 'name'

輸出:"Java陳序員"。

-f 參數指定文件名。

更新操作

  • 修改 JSON 文本數據

    echo '{"name":{"first":"Java","last":"CodeChen"}}' |
    dasel put -r json -t string -v Java陳序員 'name.first'

輸出:

{
  "name": {
    "first": "Java陳序員",
    "last": "CodeChen"
  }
}

put 參數代表對數據進行修改操作

-t 參數代表數據類型,可以是 stringintbool

-v 參數代表修改後的值

  • 修改 JSON 文本數據

    dasel put -f example.json -r json -t string -v Java陳序員 'name'

刪除操作

  • 刪除 JSON 文本數據

    echo '{"name":{"first":"Java陳序員","last":"CodeChen"}}' |
    dasel delete -r json 'name.last'

輸出:

{
  "name": {
    "first": "Java陳序員"
  }
}
delete 參數代表對數據進行刪除操作
  • 刪除 JSON 文本數據

    dasel delete -f example.json -r json 'name'

轉換操作

  • JSON 轉 YAML

    echo '{"name": "Java陳序員"}' | dasel -r json -w yaml

輸出:name: Java陳序員

-w 參數代表轉換後的數據類型,後面帶上數據類型,如 jsonyaml 等。
  • JSON 轉 YAML

    echo 'name: Java陳序員' | dasel -r yaml -w json

輸出:

{
  "name": "Java陳序員"
}

高級操作

  • 匹配數據

    echo '{"numbers":[1,2,3,4,5,6,7,8,9]}' | dasel -r json 'equal(numbers.[0],1)'          
    true
  • 過濾數據

    echo '[
    >   {"label":"x","allow":true},
    >   {"label":"y","allow":false},
    >   {"label":"z","allow":true}
    >   ]' | dasel -r json 'all().filter(allow)'
    {
    "label": "x",
    "allow": true
    }
    {
    "label": "z",
    "allow": true
    }
  • 合併數據

    echo '{
    "name": {
      "first":"Tom",
      "last":"Wright"
    },
    "firstNames": [
      "Jim",
      "Bob"
    ]
    }' | dasel -r json 'merge(name.first,firstNames.all()).all()' 
    [
    "Tom",
    "Jim",
    "Bob"
    ]

dasel 還有其他強大的命令參數以及更多的數據類型操作,具體使用可參考官方文檔:

https://daseldocs.tomwright.me/

dasel 提供了簡單易用的命令行接口和強大的功能,適合在開發中快速處理結構化數據。快去安裝體驗吧~

https://github.com/TomWright/dasel

最後

推薦的開源項目已經收錄到 GitHub 項目,歡迎 Star

https://github.com/chenyl8848/great-open-source-project

或者訪問網站,進行在線瀏覽:

https://chencoding.top:8090/#/

我創建了一個開源項目交流羣,方便大家在羣裏交流、討論開源項目

但是任何人在羣裏打任何廣告,都會被 T 掉

如果你對這個交流羣感興趣或者在使用開源項目中遇到問題,可以通過如下方式進羣

關注微信公眾號:【Java陳序員】,回覆【開源項目交流羣】進羣,或者通過公眾號下方的菜單添加個人微信,並備註【開源項目交流羣】,通過後拉你進羣

大家的點贊、收藏和評論都是對作者的支持,如文章對你有幫助還請點贊轉發支持下,謝謝!

user avatar greatsql 頭像 dadebinglin 頭像 u_13529088 頭像 oeasy 頭像 u_15745565 頭像 shuyixiaobututou 頭像 congjunhua 頭像 huaiyue_63f0b9e085bf0 頭像 code500g 頭像 wanlanqiudeyuechi 頭像 jwgqwyq 頭像 heerduo 頭像
點贊 21 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.