Join 将两个不同的文件合并到zip(或其他压缩文件)文件中的一个文件中

Join 将两个不同的文件合并到zip(或其他压缩文件)文件中的一个文件中,join,compression,zip,append,Join,Compression,Zip,Append,我在一个zip文件中有两个文件 现在,假设这两个文件很大。。。真的很大。。。太大了,我无法将它们解压缩到我那又旧又差的小硬盘上。 但是,它们是简单的txt文件,因此压缩版本非常小 我需要把这两个文件合并成一个文件。 因为它们太大了,无法取出,所以我需要在拉链里面做这个。 有办法做到这一点吗 例如: “compressed.zip”包含“part_1.txt”和“part_2.txt”。 我希望“compressed.zip”包含一个名为“part_1_和_2.txt”的文件 (如果zip无法实现

我在一个zip文件中有两个文件

现在,假设这两个文件很大。。。真的很大。。。太大了,我无法将它们解压缩到我那又旧又差的小硬盘上。 但是,它们是简单的txt文件,因此压缩版本非常小

我需要把这两个文件合并成一个文件。 因为它们太大了,无法取出,所以我需要在拉链里面做这个。 有办法做到这一点吗

例如:

“compressed.zip”包含“part_1.txt”和“part_2.txt”。 我希望“compressed.zip”包含一个名为“part_1_和_2.txt”的文件

(如果zip无法实现,我可以选择另一个压缩器……但想法是一样的:每个未压缩的文件都大于我硬盘的总容量)


Tnx

似乎您只需要确保存储需求较低;我认为操作本身不需要“在zip文件中”进行。您可以通过以下方式使用命令行工具(在Linux中或通过Cygwin使用类似工具)执行此操作:

从一个带有输入文件的tarred、gzip文件开始。让它被压缩。tar.gz。然后,您可以将gzip tar存档的内容提取到标准输出,并通过管道将其返回到gzip:

tar xzf compressed.tar.gz -O | gzip > part_1_and_2.txt.gz
生成的压缩文件是连接在一起的part_1.txt和part_2.txt的文本(尽管我认为这与包含一个文件的tar归档不同,但这可能就足够了)


如果您需要在程序中执行此操作,我猜您可以通过编程方式执行此功能,或者您可以从程序中运行脚本。

您可以使用(反过来使用)从输入文件中依次读取未压缩的数据,并编写新的输出zip文件。您不需要将所有未压缩文件存储在大容量存储器或内存中。你可以一次读写一小块,就像你不需要压缩一样。我假设您的大容量存储中有足够的空间存放所有这三个zip文件。

我将尝试这样做,但我有一个问题:当脚本将gzip tar存档的内容提取到标准输出,以便将它们传输回gzip时,如果没有空间存放它们会发生什么?我这样问是因为tar.gz文件的未压缩内容超过了硬盘的可用大小。剧本还能用吗?TnxYes,即使磁盘或内存中没有空间存放解压缩的归档文件,也应该可以使用。每一步都会通过一个管道递增地读取上一步的结果,并写入到一个管道中,直到最后。tar文件可以增量处理;它只是一堆粘在一起的文件记录。