在文件中搜索字符串并提取下一行

时间:2013-06-26 07:55:07

标签: perl

我正在尝试在文件中搜索字符串。该字符串可以在文件中多次出现。如果找到,我需要在<P></P>标记中提取其下方的行。

到目前为止,我有以下代码: 仅打印当前行。如何才能在<P></P>代码中打印下一行?

#!/usr/bin/perl
use strict;
my $find = "Primary objectives";

open(FILE,"obj_doc.html") or die "cannot open file ";
my @line = <FILE>;
for (@line) {
    if ($_ =~/$find/) {
        print "Current line is: $_\n";
        # get the next line
        # if next line begins with <P> and ends with </P> extract it. else ignore it
        my $nextline = <FILE>;
        printf "$nextline";

        if ($nextline =~ /^<P>:+<\/P>$/) {
            print $nextline;
        }
    }
}


close(FILE);

非常感谢。 - 西马克

1 个答案:

答案 0 :(得分:0)

触发器操作员是你肮脏工作的朋友。

perl -ne'print if/<P>/../<\/P>/'

无论如何使用适当的解析器进行认真的工作!