如何阅读2个文件并打印匹配的模式?

时间:2013-06-01 07:08:18

标签: linux perl

我正在尝试读取2个文件并尝试在两个文件中打印匹配的模式。 它不起作用。有人能指出我在哪里做错了吗?

 #!/usr/bin/perl
 open (FILE1, 'Dimension.csv');
 my @dim=<FILE1>;
 close (FILE1);

 open (FILE2, 'SamsClub.dimension_refs.xml');
 my @xml=<FILE2>;
 close (FILE2);

 for(my $i;$i<@dim;$i++){
  for(my $j;$j<@xml;$j++){
   if($xml[$j] =~ m/$dim[$i]/) {
    print "Match found $xml[$j]";
   }
   }
 }

注意:FILE1是csv文件,FILE2是xml文件。

csv示例文件

abc
defe
bald

xml示例文件

<tem name="abc" version="2"/>

2 个答案:

答案 0 :(得分:3)

当您将文件读入数组时,它们也包含\n字符。因此,您的$dim[0]包含abc\n,因此不匹配。

有人肯定会发布更优雅的解决方案,但您可以尝试:

my @dim = map { chomp; $_} <FILE1>;

答案 1 :(得分:1)

添加:

chomp @dim;
在循环之前