我正在使用 split 命令来分割一个 40GB 的文件。我希望使用从 1 开始的递增数字来命名生成的分割文件,例如 1, 2, 3 。 。 。
这可能吗 ?
我目前正在使用该命令split --numeric-suffixes=1 -l 2 t5
并获取文件名,如下所示:
x01 x02 x03 x04 x05 x06 x07 x08 x09 x10 x11 x12 x13 x14 x15 x16 x17
答案1
使用GNUsplit
, 是的:
split --numeric-suffixes=1
将使用数字后缀,从 1 开始。(如果您不想要默认值,您仍然需要指定前缀x
。)
要获取仅为数字的文件名,您可以指定空前缀:
split --numeric-suffixes=1 -l 2 t5 ""
split
始终使用相同长度的后缀,因此默认生成01
等02
。如果您想避免前导零,则需要对结果进行后处理(并接受次优排序行为):
rename 's/^0+//' 0*
您还需要确保split
后缀长度为您需要的所有文件提供足够的空间;默认值是两位数,如果从 1 开始,则允许 99 个文件。您可以使用-a
,指定更多数字例如 -a 3
,-a 4
, ETC。
(split
当后缀用完时停止,并出现错误。如果您坚持默认值,它将根据需要自动增加后缀长度,但给它一个开始后缀会禁用此功能。)