【问题标题】:Split csv file into multiple files将csv文件拆分为多个文件
【发布时间】:2021-04-10 18:26:22
【问题描述】:

我有一个巨大的 csv 文件,其中包含标题行和数十万条记录。

我想将其拆分为多个文件,每个文件都包含相同的标题和超过 10.000 条记录或剩下的记录

如果我不关心标题,我会做split -l 10000 myfile。但是,我需要每个文件都包含标题

我该怎么做?

【问题讨论】:

    标签: bash unix split


    【解决方案1】:

    拆分文件,不包括标题:

    tail -n +2 myfile | split -l 10000 - prefix-
    

    获取标题行:

    head -1 myfile > header
    

    然后将其附加到所有生成的文件中:

    for file in prefix-*; do
       cat header $file > $file.new
       mv $file.new $file
    done
    

    【讨论】:

    • 谢谢! tail 中的 +2 代表什么?我看到它跳过了第一行,但是为什么它会这样做呢?
    • Google "man tail" 以获取 tail 实用程序的文档(手动)。你会发现-n +2 告诉 tail 从第二行开始,而不是列出最后 10 行(默认)
    猜你喜欢
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多