我有两个压缩格式的文件
file1.gz
a2345
b1212
11212
f1212
derer
...
...
..
01234
file2.gz
g,a2345,1,2,3,4,5,6,7,a,v,c
f,b1212,2,5,6,7,8,9,0,1,2,3
d,f1212,7,8,a,b,c,w,e,r,t,y
....
....
我必须逐行读取file1.gz并在file2.gz的每一行中进行查找,如果匹配则重新指向另一个名为file 3的文件。
请记住我的 file1.gz有100万行而 file2.gz有500万行因此我需要在perl中进行一些解决方案以便它消耗低资源在我的Solaris服务器中。
如果可以通过阅读zip文件中的内容来处理perl脚本,那将非常有帮助。
答案 0 :(得分:0)
如果您的问题是如何打开gzip文件以便在Perl中阅读:
如果你有Compress :: Zlib模块,那么
use Compress::Zlib;
$f1 = gzopen( "file1.gz", "r" );
$f2 = gzopen( "file2.gz", "r" );
$bytes = $f1->gzreadline( $line );
等...做
perldoc Compress::Zlib
查看文档。
没有该模块,您仍然可以
open( F1, "gzip -dc file1.gz |" );
open( F2, "gzip -dc file2.gz |" );
由于您正在创建额外的gzip进程来读取文件,因此会产生更多的开销。