我有一个包含 20000 行的文件,我想将其拆分为带有数字后缀的较小文件,每个文件有 2 行。所以,很简单,我正在使用
split -l 2 -d my_file my_file_new
带有数字后缀的输出文件不按顺序排列,这意味着我从 00-89 获取文件,然后而不是 90, 91,92, ... 它跳转到 9000, 9001!有谁知道可能出了什么问题?
答案1
这似乎是设计使然,因此当您列出文件或使用通配符匹配所有文件时,它们将以正确的顺序显示。如果名称严格按顺序排列,则后缀后面99
将是100
,但filename.100
在filename.10
和之间排序filename.11
(文件名通常按字典顺序排序,而不是按数字排序)。
因此,当它达到 90 时,它会在后缀中添加更多数字,以确保附加文件在超过 10 个时能够正确排序。我想它可以一直等到99
,然后继续9900
、9901
等,但是当它到达时,9999
它必须再次添加数字;增加90
意味着它可以在增长之前额外处理 1000 个文件。
正如评论中提到的,您可以使用该-a
选项来指定后缀长度,而不是让它选择默认值(从 2 位数字开始,直到达到90
)。