2012-02-02 56 views
0

我在壓縮格式兩個文件查找和2個文件之間

file1.gz

a2345 
b1212 
11212 
f1212 
derer 
... 
... 
.. 

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的每一行中執行查找,如果匹配,則重新指向另一個稱爲文件3的文件。

請記住我的file1.gz有100萬行file2.gz擁有500萬線,所以我需要一些變通Perl中,使其消耗低資源在我的Solaris服務器上。

如果可以通過讀取zip文件中的內容來工作perl腳本,那將非常有幫助。

回答

0

如果你的問題是關於如何打開gzip文件格式的讀取在Perl:

如果你有壓縮:: 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進程讀取文件。

+0

是否可以完整填寫劇本,因爲我是PERL的新手 – user1185414 2012-02-02 15:41:35

+0

您付多少錢? : - ]我不能,對不起,但也許別人可以。 – theglauber 2012-02-02 15:44:39