如何将一个大的 gzip 文件拆分为几个较小的 gzip 文件而无需先解压缩?

如何将一个大的 gzip 文件拆分为几个较小的 gzip 文件而无需先解压缩?

有没有办法无需使用就可以将较大的 gzip 文件拆分为较小的 gzip 文件zcat

zcat large.bed.gz| split --numeric-suffixes - -b 7M --filter='gzip > $FILE.gz' large.part.

答案1

你的问题的答案(考虑到节省时间的目标,而不是用 zcat 代替其他东西 - 这是可以做到的)是这不可能

问题是,gzip 文件的压缩输出长度会根据输入而变化,并且这很难预测,因此没有明显的边界来分割文件。

另外,您建议的命令是否就是您实际使用的命令?如果是,那么它就有问题了,因为它会在任意位置(而不是行边界)分割文件。您应该使用类似“-l XXXXX”的命令 - 其中 XXXXX 是行数,而不是“-b 7M”是块大小。

您没有提供足够的信息让我们建议进一步的解决方法,但如果您可以控制 .gz 文件的生成方式,您可能能够在创建文件时将其拆分成几部分 - 这是相当常见的,并且可以根据文件的创建方式部署许多策略。

相关内容