将文件分割为带有数字后缀的较小文件

将文件分割为带有数字后缀的较小文件

我有一个包含 20000 行的文件,我想将其拆分为带有数字后缀的较小文件,每个文件有 2 行。所以,很简单,我正在使用

split -l 2 -d my_file my_file_new

带有数字后缀的输出文件不按顺序排列,这意味着我从 00-89 获取文件,然后而不是 90, 91,92, ... 它跳转到 9000, 9001!有谁知道可能出了什么问题?

答案1

这似乎是设计使然,因此当您列出文件或使用通配符匹配所有文件时,它们将以正确的顺序显示。如果名称严格按顺序排列,则后缀后面99将是100,但filename.100filename.10和之间排序filename.11(文件名通常按字典顺序排序,而不是按数字排序)。

因此,当它达到 90 时,它会在后缀中添加更多数字,以确保附加文件在超过 10 个时能够正确排序。我想它可以一直等到99,然后继续99009901等,但是当它到达时,9999它必须再次添加数字;增加90意味着它可以在增长之前额外处理 1000 个文件。

正如评论中提到的,您可以使用该-a选项来指定后缀长度,而不是让它选择默认值(从 2 位数字开始,直到达到90)。

相关内容