如何使用perl搜索压缩文件中的文本

时间:2013-05-17 00:50:01

标签: perl zip perl-module

我需要在包含多个文本文件的zip存档中搜索字符串。我怎样才能使用perl Archive :: Zip来做到这一点?另外,还有什么其他模块,如果有的话?

我的基本要求是在压缩档案中找到包含给定字符串的特定文本文件。

1 个答案:

答案 0 :(得分:2)

只是一个简单的例子,如何遍历zip中的所有文件,

use strict;
use Archive::Zip;
my ($path, $filename) = ('c:\\temp\\', 'many_filez.zip'); #try / instead of \\?
my $zip = Archive::Zip->new($path.$filename);
unless ($zip) {
    die dump "cannot open '$path' + '$filename'" 
}
#find only css-files
my @members = $zip->membersMatching('.*\.css');
foreach my $member (@members) {
    my $file_content = $zip->contents($member );
    if ($file_content =~ /text to look for/ ) {
        print "\n $member->{fileName} did have a match";
    }        
}