我有一个文件。
Sun Sep 9 12:34:42 2012 : Sun Sep 9 12:34:42 2012 : [Req] Send Bcast
Sun Sep 9 12:34:32 2012 : RX FROM :152.14.189.4 MESG:
Sun Sep 9 12:34:32 2012 : info
Sun Sep 9 12:34:32 2012 : #ip=1.1.1.4
Sun Sep 9 12:34:32 2012 : RX FROM :13
Sun Sep 9 12:34:32 2012 : #ip=1.1.1.13
Sun Sep 9 12:34:32 2012 : RX FROM :9
Sun Sep 9 12:34:32 2012 : #ip=1.1.1.9
Sun Sep 9 12:34:32 2012 : RX FROM :14
Sun Sep 9 12:34:32 2012 : #ip=1.1.1.14
Sun Sep 9 12:34:32 2012 : RX FROM :5
Sun Sep 9 12:34:32 2012 : #ip=1.1.1.5
Sun Sep 9 12:34:35 2012 : Reply back to 9
Sun Sep 9 12:34:35 2012 : Reply back to 13
Sun Sep 9 12:34:36 2012 : Reply back to 14
Sun Sep 9 12:34:37 2012 : Reply back to 1.1.1.4
Sun Sep 9 12:34:37 2012 : Reply back to 5
Sun Sep 9 12:34:42 2012 : Sun Sep 9 12:34:42 2012 : [Req] Send Bcast
Sun Sep 9 12:34:32 2012 : RX FROM :152.14.189.4 MESG:
Sun Sep 9 12:34:32 2012 : info
Sun Sep 9 12:34:32 2012 : #ip=1.1.1.5
Sun Sep 9 12:34:32 2012 : RX FROM :13
Sun Sep 9 12:34:32 2012 : #ip=1.1.1.9
Sun Sep 9 12:34:32 2012 : RX FROM :9
Sun Sep 9 12:34:32 2012 : #ip=1.1.1.4
Sun Sep 9 12:34:32 2012 : RX FROM :14
Sun Sep 9 12:34:32 2012 : #ip=1.1.1.13
Sun Sep 9 12:34:32 2012 : RX FROM :5
Sun Sep 9 12:34:32 2012 : #ip=1.1.1.14
Sun Sep 9 12:34:35 2012 : Reply back to 9
Sun Sep 9 12:34:35 2012 : Reply back to 14
Sun Sep 9 12:34:36 2012 : Reply back to 13
Sun Sep 9 12:34:37 2012 : Reply back to 4
Sun Sep 9 12:34:37 2012 : Reply back to 5
在两行“Bcast”之间,我需要搜索一个值,比如 1.1.1.4,如果它同时出现在 ip=1.1.1.1 和回复 1.1.1.4。然后我需要忽略那组。否则我需要将差异写在两个单独的文件中。我尝试在 perl 中这样做。当我在 Bcast 和 Bcast 之间搜索时,没有打印任何内容。我错过了什么吗?这是我写的
open my $in,'<',$ARGV[0];
open my $out,'>',"File2.txt";
my $Flag =0;
while(<$in>){
if (/Bcast/ .. /Bcast/)
{
print ;
if ( ($_ =~ m{ ip=1\.1\.1\.4 }xms) )
{
$Flag=$Flag+1;
print " \nMatch is Found !!! Hurray \n" if ($Flag==2);
}
}
$Flag=0;
}
请帮助我