使用 Linux split 命令创建 N 个文件

使用 Linux split 命令创建 N 个文件

我需要将文件拆分成一定数量的存储桶。大小不必相等。

这是我的逻辑

count = wc -l filename
split_count = (count)/4
split -l split_count filename core_

有时,如果我将 4 的数字更改为其他数字,它会给我 N+1 个桶。有没有更好的方法来创建恰好 N 个桶?

答案1

可能是因为使用整数运算的结果有时会导致值稍微太小。

例如,1001 / 4只有250四组 250 行,无法完成全部 1001 行。

您可以修改逻辑以增加该值,直到其中四个至少与文件一样大,例如:

count = wc -l filename
split_count = (count)/4
while split_count * 4 < count:           # Add these
    split_count++                        #   two lines.
split -l split_count filename core_

您还可以四舍五入到下一个倍数N以确保足够,例如:

split_count = (count + N - 1) / N

相关内容