Command-Line
是否有用於處理 csv 文件的強大命令行工具?
我使用 CSV 文件,有時需要從命令行快速檢查行或列的內容。在很多情況下
cut
,head
、tail
、 和朋友會做這項工作;但是,cut 不能輕易處理諸如"this, is the first entry", this is the second, 34.5
在這裡,第一個逗號是第一個欄位的一部分,但
cut -d, -f1
不同意。在我自己編寫解決方案之前,我想知道是否有人知道已經存在用於這項工作的好工具。它至少必須能夠處理上面的範例並從 CSV 格式的文件中返回一列。其他理想的功能包括根據第一行中給出的列名選擇列的能力,支持其他引用樣式和支持製表符分隔的文件。如果您不知道這樣的工具,但對用 Bash、Perl 或 Python 或其他常見腳本語言實現這樣的程序有建議,我不介意這樣的建議。
您可以使用 Python 的
csv
模組。一個簡單的例子:
import csv reader = csv.reader(open("test.csv", "r")) for row in reader: for col in row: print col
我可能有點太晚了,但是還有另一個值得一提的工具:csvkit。
它有很多命令行工具,可以:
- 重新格式化 CSV 文件,
- 從各種格式(JSON、SQL、XLS)與 CSV 相互轉換,
- 等價於
cut
、和其他grep
,sort
但支持 CSV,- 加入不同的 CSV 文件,
- 對 CSV 文件中的數據執行一般 SQL 查詢。