将文件拆分为X量的偶数文件?

时间:2015-05-08 16:16:16

标签: linux

我找到了多种方法将文件拆分为X行数或X大小,但我想知道如何将文件拆分为5个大小均匀的文件?

如果重要的话,这将是.csv文件。

2 个答案:

答案 0 :(得分:1)

您需要查看wc -lsplit。将它们放在一起你会得到:

split -l $(($(wc -l <myfile.txt)/5)) myfile.txt

这会将myfile.txt分成5个大小合适的文件(假设myfile行可以被5整除)。默认输出为xaaxab ....您可以使用-a-d--additional-suffix=suffix选项设置后缀。

分割的另一种方法是chunks,它将提供偶数行的行数,直到最后一个文件并转储任何多余的(不可被5整除)行。

split -n 5 myfile.txt

您可以使用-b选项拆分为偶数个字节,但这对于.csv文件来说听起来不错。

答案 1 :(得分:0)

您可以使用以下内容将文件拆分为N行文件:

split -l [number of lines] inputfile

所以你只需要计算行数来获得5个文件:

ln=$(wc -l < inputfile)
split -l $((ln / 5 + (ln % 5 > 0))) inputfile