在Linux中将文件拆分为不等的块

alp*_*cod 6 unix linux bash

我希望将一个大文件(带有~17M行的字符串)拆分成多个文件,每个块中的行数不同.是否可以将数组发送到' split -l '命令,如下所示:

[
 1=>1000000,
 2=>1000537,
 ...
]
Run Code Online (Sandbox Code Playgroud)

以便将那么多行发送到每个块

tha*_*guy 8

使用复合命令:

{
  head -n 10000 > output1
  head -n   200 > output2
  head -n  1234 > output3
  cat > remainder
} < yourbigfile
Run Code Online (Sandbox Code Playgroud)

这也适用于循环:

{
  i=1
  for n in 10000 200 1234
  do
      head -n $n > output$i
      let i++
  done
  cat > remainder
} < yourbigfile
Run Code Online (Sandbox Code Playgroud)

这不适用于OS X,其中head读取并丢弃其他输出.