我的文件如下所示:
1 15
2 16
3 18
4 19
5 25
6 30
7 55
8 45
9 34
10 52
如果匹配的模式在第 6 行是 30,我想在第 6 行之前抓取 N 行,在第 6 行之后抓取 M 行,例如如果 N=3 和 M=4,那么结果应该是这样的:
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";
}
}