Xsv
極速 CSV 命令列處理工具
軟體分類 生產力 / 數據處理
軟體標籤
MeshNetworkAutomation toolsKVMAI聊天
開發廠商 Andrew Gallant (BurntSushi)
產品說明
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複雜篩選與串接:
結合search與select,例如:找出 "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 子指令,它也能產生適合人類閱讀的對齊表格。



