![将文件分割为带有数字后缀的较小文件](https://linux22.com/image/118864/%E5%B0%86%E6%96%87%E4%BB%B6%E5%88%86%E5%89%B2%E4%B8%BA%E5%B8%A6%E6%9C%89%E6%95%B0%E5%AD%97%E5%90%8E%E7%BC%80%E7%9A%84%E8%BE%83%E5%B0%8F%E6%96%87%E4%BB%B6.png)
我有一个包含 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
)。