当我在Mac上使用-split时,为什么我的5GB文件会分成同一个文件?

时间:2014-04-26 12:51:30

标签: unix

我正在尝试在我的Mac上使用split -l 100000 file.txt命令,但它只会创建一个名为xab的文件并且大小保持不变。我问,大块在哪里?

1 个答案:

答案 0 :(得分:0)

您可能在目录中也有一个名为“xaa”的文件。

您的结果是因为split适用于换行符,并且该文本文件中可能没有换行符。您还应通过du或带head的顶行检查file.txt是否符合您的预期且不为空。

例如说一个12行文件:

drop.local]➜  split_demo  wc -l requirements.txt
      12 requirements.txt

然后我将其分成,但是需要很多文件,因此每个文件都是2行:

drop.local]➜  split_demo  split -l 2 requirements.txt

导致6个长度为2的文件,这是有道理的:

drop.local]➜  split_demo  ls
requirements.txt xab              xad              xaf
xaa              xac              xae
drop.local]➜  split_demo  cat xaa
pip install flask==0.9
pip install flask-login

现在让我们说我有一个二进制文件:

drop.local]➜  split_demo  dd if=/dev/urandom of=/tmp/split_demo/block_file bs=1m count=5
5+0 records in
5+0 records out
5242880 bytes transferred in 0.649609 secs (8070823 bytes/sec)
drop.local]➜  split_demo  du -h block_file
5.0M    block_file
drop.local]➜  split_demo  file block_file
block_file: data

Newlines在这里没有多大意义,所以让我们把它分成1兆字节的块:

drop.local]➜  split_demo  split -b 1m block_file
drop.local]➜  split_demo  ls
block_file xaa        xab        xac        xad        xae 

在您的情况下,您希望使用块来获取1024米的块。