perl读取文件中的特定行的代码

发布时间:2020-03-04编辑:脚本学堂
perl读取文件中的特定行的代码

使用perl读取文件中的特定行,有需要的朋友可以参考下。
 

复制代码 代码如下:

#!/bin/perl
open(FD,"<C:perl tutorialextract_range_line.txt");
while(<FD>)
{
  if (2 .. 5) #包含第二行和第五行
  {
    print;
  }
}
close(FD);

#wrong
$begin=2;
$end=5;
open(FD,"<C:perl tutorialextract_range_line.txt");
while(<FD>)
{
  if ($begin .. $end) #包含第二行和第五行
  {
    print;
  }
}
close(FD);

# right
$begin=2;
$end=5;
open(FD,"<C:perl tutorialextract_range_line.txt");
while(<FD>)
{
  if ($.==$begin .. $.==$end) #包含第二行和第五行
  {
    print;
  }
}
close(FD);

open(FD,"<C:perl tutorialextract_range_line.txt");
while(<FD>)
{
  if (2 ... 5) #包含第二行和第五行
  {
    print;
  }
}
close(FD);

open(FD,"<C:perl tutorialextract_range_line.txt");
while(<FD>)
{
  if (/range/i .. /scalar/) #包含range和scalar所在的行
  {
    print;
  }
}
close(FD);

open(FD,"<C:perl tutorialextract_range_line.txt");
while(<FD>)
{
  if (/range/i ... /scalar/) #包含range和scalar所在的行
  {
    print;
  }
}
close(FD);

对于匹配的字符串在同一行的情况,则不适用,例如
 

复制代码 代码如下:
#wrong
#开始字符串和结束字符串在同一行
open(FD,"<C:perl tutorialstart_end_in_one_line.txt");
while(<FD>)
{
  if (/begin/i .. /end/) #包含begin和end所在的行
  {
    print;
  }
}
close(FD);

#开始字符串和结束字符串在同一行
 

复制代码 代码如下:
open(FD,"<C:perl tutorialstart_end_in_one_line.txt");
while(<FD>)
{
  if (/begin/i .. /end/) #包含begin和end所在的行
  {
    print;
  }
}
close(FD);