use*_*619 1 shell-script text-processing csv split
我正在尝试使用以下命令将 csv 文件拆分为多个文件。此命令拆分为 5 个文件,但数据在其中一个文件中被截断?
我该如何解决这个问题?
>>split -n 5 -d -a 2 testfile
Run Code Online (Sandbox Code Playgroud)
我的输入中有 5001 行,但拆分分为
file1 - 932
file2 - 910
file3 - 1149
file4 - 1044
file5 - 966
Run Code Online (Sandbox Code Playgroud)
每个文件不应该是 1000 行吗?
split -n 5将文件分成五个部分,使除最后一部分外的所有部分都具有相同的字节数。
如果您只想在线条边界上进行拆分,请使用:
split -n l/5 -d -a 2 testfile
Run Code Online (Sandbox Code Playgroud)
这在GNU 文档中split详细说明如下:
'-n chunks'
'--number=chunks' 将
输入拆分为块输出文件,其中块可能是:Run Code Online (Sandbox Code Playgroud)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
Run Code Online (Sandbox Code Playgroud)
上面将文件分成几部分,每个部分(除了最后一个)有 1,000 行。这被记录为:
'-l lines'
'--lines=lines'
将输入行放入每个输出文件中。