如何从文本文件中提取标题并使用这些标题打开其他文件并搜索模式

时间:2016-09-07 14:31:24

标签: regex perl file loops

我试图弄清楚Perl程序读取包含文件名的文本文件,打开每个文件并搜索它们以寻找正则表达式(例如GGggG)。

我的理由是首先我需要读取文件并将所有内容保存到数组中。

然后是foreach数组元素,open相应的文件并在其中搜索。

有人可以帮忙吗?

此代码适用于(gratia Chankey Pathak)仅包含一个标题的行,因此无需任何处理:

 my $filename = 'names.txt';
    open (my $fh, "<", $filename) or die $!;
    while ( <$fh> ) {
        chomp $_;
        my $file_contents;
        {
            open (my $fh, '<', $_) or die $!;

            my $file_contents = '';
               while (<$fh>) {
               $file_contents .= $_;
        print "Matched!" if $file_contents =~ /gggggg/i;
}
}
}

但是,如果名称文件中充满了仅由\ t?

分隔的名称(少数/行),该怎么办?

1 个答案:

答案 0 :(得分:1)

我的方法如下所示解决问题。

my $filename = 'names.txt';
open (my $fh, "<", $filename) or die $!;

# assuming each line contains file name
while ( <$fh> ) {
    chomp $_;
    my $file_contents;
    {
        open (my $fh, '<', $_) or die $!;
        local $/ = undef;
        $file_contents = <$fh>;
        close $fh;
    }
    print "Matched!" if $file_contents =~ /GGGGG/;
}

请参阅:

相关问题