我找到了多种方法将文件拆分为X行数或X大小,但我想知道如何将文件拆分为5个大小均匀的文件?
如果重要的话,这将是.csv文件。
答案 0 :(得分:1)
您需要查看wc -l
和split
。将它们放在一起你会得到:
split -l $(($(wc -l <myfile.txt)/5)) myfile.txt
这会将myfile.txt
分成5个大小合适的文件(假设myfile行可以被5整除)。默认输出为xaa
,xab
....您可以使用-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