Skip to content

Xsv

極速 CSV 命令列處理工具

軟體分類 生產力 / 數據處理
軟體標籤
MeshNetworkAutomation toolsKVMAI聊天
開發廠商 Andrew Gallant (BurntSushi)
Stars
10.8k
Forks
331
License
MIT LICENSE
Version
v0.13.0
Update
2025-04-24
OS

產品說明

Xsv 是一款使用 Rust 語言編寫的極速 CSV (Comma-Separated Values) 命令列工具。它的誕生是為了處理那些大到 Excel 無法開啟(例如數 GB 甚至數十 GB)、但又不至於需要動用 Hadoop 或 Spark 等重型大數據框架的 CSV 檔案。

得益於 Rust 的零成本抽象與記憶體安全性,Xsv 的執行效能非常驚人。它能在毫秒級的時間內完成對大型數據集的切割(Slice)、篩選(Filter)、排序(Sort)與統計(Stats)。它支援建立索引(Index),讓隨機存取與計數操作幾乎瞬間完成。對於資料科學家、後端工程師或需要進行 ETL(擷取、轉換、載入)作業的人員來說,Xsv 是終端機裡不可或缺的瑞士刀。

核心特色:

  • 極致效能:基於 Rust 開發,啟動快、記憶體佔用低,能飛快處理超大 CSV 檔案。
  • 強大統計:能一鍵計算所有欄位的平均值、中位數、標準差、空值率等統計數據。
  • 索引加速:支援建立 .idx 索引檔,讓切割與計數操作從線性時間縮減至常數時間。
  • 靈活管道:設計上完全符合 Unix Philosophy,支援與 grep, awk, sed 等工具透過 Pipe (|) 串接使用。

常用指令

Xsv 的指令設計直觀,通常以 xsv <子指令> [選項] <檔案> 的形式運作。

基礎與分析操作

# 檢視 CSV 檔案的前 10 筆資料 (類似 head)
xsv head -n 10 data.csv

# 列出 CSV 的所有欄位名稱及其索引
xsv headers data.csv

# 計算檔案的總行數 (若有索引則瞬間完成)
xsv count data.csv
指令功能說明範例
headers檢視標頭列出所有欄位名稱與對應序號
count計算行數快速回傳 CSV 的總資料筆數
stats統計分析計算每個欄位的 min/max/mean/nulls 等數據
select選擇欄位依欄位名稱或索引取出特定資料行
search搜尋資料使用 Regex 正規表達式篩選資料列
slice切割資料取出特定範圍的資料 (如第 100 到 200 筆)
sort排序資料依指定欄位對資料進行排序
frequency頻率分佈建立特定欄位的數值分佈頻率表
table美化輸出將 CSV 對齊並格式化為易讀的表格

進階技巧

  • 快速統計預覽
    這或許是 Xsv 最強大的功能,能讓你瞬間了解一份陌生資料集的樣貌(包含資料型態與缺漏值)。

    # 計算統計數據並以表格美化輸出
    xsv stats data.csv | xsv table
    
  • 複雜篩選與串接
    結合 searchselect,例如:找出 "City" 欄位包含 "Taipei" 的資料,並只顯示 "Name" 與 "Population" 欄位。

    xsv search -s City "Taipei" data.csv | xsv select Name,Population
    
  • 建立索引以加速處理
    對於超大檔案,先建立索引可讓後續的切割與計數操作變為隨機存取(Random Access)。

    xsv index big-data.csv
    # 之後執行 count 或 slice 將會瞬間完成
    xsv count big-data.csv
    

操作介面

Xsv 是純粹的命令行工具 (CLI),預設輸出標準的 CSV 格式文字,這使得它非常容易導出結果給其他程式使用。但透過 table 子指令,它也能產生適合人類閱讀的對齊表格。