按字节大小拆分文件时出现意外行为

时间:2016-11-15 09:26:45

标签: bash split byte naming

假设包含多行字母数字字符串的file按字节大小拆分为小子文件。子文件将以数字标记。

$ split -d -b 100 file subfile

生成的子文件标记为预期,直到子文件89,但随后更改其标签模式。有趣的是,标签模式在子文件9899处再次发生变化!

$ ls
file
subfile00
subfile01
...
subfile89
subfile9000  # sic!
subfile9001
...
subfile9899
subfile990000  # sic!
subfile990001
...

这种模式对我来说很奇怪。有没有办法按字节大小分割文件file并接收从0到x连续标记的子文件,其中x =总分割数?

编辑1

$ split --version
split (GNU coreutils) 8.25

1 个答案:

答案 0 :(得分:2)

GNU默认情况下拆分控制使用-a选项(2默认值)添加到文件的后缀长度。您可以使用此-a选项

,根据分割文件的数量覆盖最大数字
-a, --suffix-length=N
     use suffixes of length N (default 2)

E.g。如果您认为,您的拆分文件可能会在1-100之间变化,则可以使用split作为后缀长度运行3命令。

$ split -a 3 -d -b 100 file subfile