Допустим, у меня есть текстовый файл:
Line 1
Line 2
Target Name1
Line 3
Line 4
Line 5
Line 6
Target Name2
Line 7
Line 8
Line 9
Line 10
Я хочу иметь возможность искать целевой шаблон (их может быть несколько в текстовом файле, как в примере выше), а затем распечатать определенное количество строк, которые следуют за ним. Скажем, 3 строки. Итак, я хотел бы получить вывод
Target Name1
Line 3
Line 4
Line 5
Target Name2
Line 7
Line 8
Line 9
Пока все, что у меня есть, - это код, чтобы найти цель и распечатать ее:
use strict;
use warning;
open (my $INFILE, $input_file);
my $outfile = "output.txt";
open (my $OUTFILE, '>', $outfile);
my $name;
while (my $line = <$INFILE>) {
if ($line =~ m#TARGET\s+(\S+)#){
$name = $1;
print $OUTFILE "Target $name\n";
}
}
Я не уверен, как распечатать следующие 3 строки после цели. Примечание. Предположим, что цели всегда находятся дальше, чем 3 линии друг от друга. Я думаю, что мне нужен счетчик, верно?