私のファイルは次のようになります。
1 15
2 16
3 18
4 19
5 25
6 30
7 55
8 45
9 34
10 52
一致したパターンが 6 行目で 30 の場合、たとえば N=3 で M=4 の場合、6 行目の前の N 行と M 行後の M 行を取得したいので、結果は次のようになると予想されます。
3 18
4 19
5 25
6 30
7 55
8 45
9 34
10 52
私は Perl の非常に新しい初心者であり、アドバイスをいただければ幸いです。
﹟UPDATE 以下の有益なアドバイスに感謝し、本当に感謝しています。これが私の更新されたコードです。提案は大歓迎です!
my $num;
while(<>)
{
if ( /pattern/)
{$num = $. ;}
}
open (,"") || die ("Can't open the file");
while(<>)
{
if ( $. >= $num-N and $. <=$num+M)
{
print OUT "$_ \r";
}
}