【发布时间】:2021-04-10 18:26:22
【问题描述】:
我有一个巨大的 csv 文件,其中包含标题行和数十万条记录。
我想将其拆分为多个文件,每个文件都包含相同的标题和超过 10.000 条记录或剩下的记录
如果我不关心标题,我会做split -l 10000 myfile。但是,我需要每个文件都包含标题
我该怎么做?
【问题讨论】:
我有一个巨大的 csv 文件,其中包含标题行和数十万条记录。
我想将其拆分为多个文件,每个文件都包含相同的标题和超过 10.000 条记录或剩下的记录
如果我不关心标题,我会做split -l 10000 myfile。但是,我需要每个文件都包含标题
我该怎么做?
【问题讨论】:
拆分文件,不包括标题:
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 代表什么?我看到它跳过了第一行,但是为什么它会这样做呢?
-n +2 告诉 tail 从第二行开始,而不是列出最后 10 行(默认)