搜索从一个文件到另一个文件中的字符串的字符串列表

时间:2014-10-30 14:10:18

标签: regex perl

我有一个file1,其中包含一列中的字符模式列表,如下所示:

abcde
defgh
uvwxy
...

file2这只是一个大字符串,如下所示:

abcdefghijklmnopqrstuvwxyz

我想找到file1字符串与file 2字符串之间匹配的位置。

为此,我使用了索引函数:

#!/usr/bin/perl

use strict;
use warnings;

my $string = "abcdefghijklmnopqrstuvwxyz"
my $char   = "uvwxy" ;

my $result = index($string, $char);

print "Result: $result\n";

有效,它匹配并给我这个位置。

问题是我必须手动输入 我要匹配的每个字符模式。

如何告诉软件获取/.../file1.txt中的字符模式列表?

1 个答案:

答案 0 :(得分:0)

将文件读入数组然后循环。

尝试使用:

#!/usr/bin/perl
use strict;
use warnings;

open my $fh, '<', 'path/to/file' or die "unable to open file: $!";
chomp( my @search = <$fh> );

my $string = "abcdefghijklmnopqrstuvwxyz";

foreach my $char (@search) {
    my $pos = index( $string, $char );
    if ( $pos != -1 ) {
        print "found $char at position $pos\n";
    }
}