将csv文件拆分为多个文件

时间:2021-04-10 18:26:22

标签: bash unix split

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

我想把它分成多个文件,每个文件都包含相同的标题和超过 10.000 条记录或剩下的内容

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

我该怎么做?

1 个答案:

答案 0 :(得分:3)

拆分文件,排除标题:

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