如何在两个文件之间进行匹配

时间:2015-09-30 15:52:04

标签: perl

我写了一个perl脚本来匹配一个文件中的特定单词,并在第二个文件中找到包含它们的行。但它并不匹配第一个文件中的所有相关内容,也不会在第二个文件中选择所有相关内容。我认为我的代码中肯定存在一些问题。请你解释一下。感谢。

open my $file2, '<', $f2;
while (my $line_comp = <$file2>) {
chomp $line_comp;
$line_comp =~ m/(.*)(-from)(\s+)(\S*)(.*)(-scheme)(\s+)(\S*)(.*)(-to)(\s+)(\S*)(.*)/;
my $fr = $4;
my $sc = $8;
my $t =  $12;

if (defined $fr && defined $t){
open my $file3, '+<', $f3;
open my $file4, '+>', $f4;

while (my $line_write = <$file3>) {
if ($line_write =~ m/(.*)(-)(\s*)scheme(\s+)($sc)(.*?)(-)(\s*)from(\s+)($fr)(.*?)(-to)(\s+)($t)(.*?)/sm){
print "$line_write\n"; }
else { print $file4 "$line_write";}
                }
copy ("$f4", "$f3") or die "copy failed: $!";

0 个答案:

没有答案