我有一个看起来像这样的大文件:
<Feed stack_overflow>
sourceid 32456
prefeed 1
<LOG>
level 1
cache info
</LOG>
</Feed>
我想搜索此文件中的任何内容,并检索包含 Feed 标签的所有内容。因此,如果我搜索 32456,我将得到上面代码中的所有内容。
我现在的代码是:
#!/usr/bin/perl
my $input = "<Feed stack_overflow"; #Search string
my $end = "</Feed>"; #End string
open (DATA, "file.config") or die "Error";
my @list = grep /\b$input\b(.*?)\b$end\b/, <DATA>;
chomp @list;
print "$_\n foreach @list;
但我没有得到任何结果,即使我知道我搜索的内容存在。我已经成功地使用这个正则表达式打印出包含特定字符串的每一行:
my @list = grep /\b$input\b/, <DATA>;
但我需要帮助打印两个标签之间的所有内容。