拆分 CSV 文件时出现问题

拆分 CSV 文件时出现问题

我尝试使用以下命令将 csv 文件拆分为多个文件。该命令拆分为 5 个文件,但其中一个文件中的数据被截断?

我该如何解决这个问题?

>>split -n 5 -d -a 2  testfile

我的输入中有 5001 行,但分割分为

file1 - 932
file2 - 910
file3 - 1149
file4 - 1044
file5 - 966

每个文件不应该是1000行吗?

答案1

split -n 5将文件分成五个部分,使除最后一部分之外的所有部分都具有相同的数量字节

如果您只想在行边界上进行分割,请使用:

split -n l/5 -d -a 2  testfile

这在GNU 文档用于split如下:

'-n chunks'
'--number=chunks'
     将输入拆分为块输出文件,其中块可能是:

          n      generate n files based on current size of input
          k/n    only output kth of n to stdout
          l/n    generate n files without splitting lines
          l/k/n  likewise but only output kth of n to stdout
          r/n    like ‘l’ but use round robin distribution
          r/k/n  likewise but only output kth of n to stdout

另一个选项是指定每个输出文件中需要多少行:

split -l 1000 -d -a 2  testfile

上面将文件分成几个部分,每个部分(最后一个除外)有 1,000 行。这被记录为:

'-llines'
'--lines=lines'
     将lines行输入到每个输出文件中。

答案2

使用-l的选项split。从手册页:

 -l line_count
         Create smaller files n lines in length.

例如

split -l 1000 afile.txt

相关内容