当csv原始数据为 制表符分隔时, 对Excel、pandas处理不友好,可直接使用 tr 或 sed 进行转换。
# 使用 tr,将制表符替换为逗号tr'\t'',' < input.tsv > step1.csv特点:
为了方便并行处理、上传 HDFS、导入数据库,常需要将 CSV 按行数拆分。以下示例:每 1,000,000 行一个文件,且每个文件都包含表头。
awk 'NR==1 {h=$0; next}{ f = int((NR-2)/1000000) if ((NR-2)%1000000 == 0) { name = sprintf("part_%03d.csv", f) print h > name } print >> name}' step1.csv输出示例:
part_000.csvpart_001.csvpart_002.csvhead -n 5 part_000.csvwc -l part_000.csvcut -d',' -f3 part_000.csv | headawk -F',' '$2=="xxx"' part_000.csv