ファイルがあります。
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
2 行の「Bcast」の間で 1.1.1.4 という値を検索する必要があり、それが ip=1.1.1.1 と 1.1.1.4 に返信するの両方に存在する場合。次に、そのセットを無視する必要があります。それ以外の場合は、違いを 2 つの別々のファイルに書き込む必要があります。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;
}
助けてください