输入文件:
{test test
{***********************************************************************
{Rtest
{***********************************************************************
{test
{***********************************************************************
{* date
{*
{* Initial revision
{*
{***********************************************************************
{output}
{output1}
{output 2}
{Test TEst TEST}
{Test test test}
{*********************}
{********************}
所需输出:
{Output}
{output1}
{output2}
脚本
use strict;
use warnings;
while (<DATA>) {
$line = $_;
chomp $line;
push( @lines, $line );
$line =~ s/^\s+//;
$line =~ s/\s+$//;
for ( my $i = 0 ; $i <= $#lines ; $i++ ) {
if ( $lines[$i] =~ m/(^{\**$)/ ) {
push( @matched, $lines[ $i + 1 ] );
print "$lines[$i+1]"."\n";
}
}
}
我的输出:
{test test
{***********************************************************************
{Rtest
{***********************************************************************
{test
{***********************************************************************
{* date
{*
{* Initial revision
{*
{***********************************************************************
我能够匹配顶部块,但无法获得所需的前 3 行作为输出。从上面的匹配条件中,我试图提取下一行,但我得到一个空格作为输出。我错过了什么吗,在此先感谢。