入力ファイル:
{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 行を出力として取得できません。上記の一致条件から、次の行を抽出しようとしていますが、出力として空白が表示されます。何か足りないものがありますか、よろしくお願いします。