我基本上想要为gzip创建一个文件句柄,并使用它来匹配字符串,就像我任何其他文件一样。我需要比较两个gzip文件中的行,但它们每个都是15 GB。我正在使用Archive :: Extract和File :: temp来读取它们但我的硬盘驱动器已经填满了。
答案 0 :(得分:2)
您可以将gzip -dc
传递到文件句柄中,如下所示:
open(my $fh1, '-|', '/usr/bin/gzip -dc filename1.gz') or die $!;
open(my $fh2, '-|', '/usr/bin/gzip -dc filename2.gz') or die $!;
它应缓冲gzip的输出,而不是在磁盘上使用空间。
PerlIO::gzip
不解压缩整个文件,但在读取到句柄时解压缩,因此您也可以使用它。