我有一个包含数据的文件,如下所示:
读取文件1
错误1
错误2
错误3
读取文件2
错误1
错误3
错误6
读取文件3
错误2
错误3
错误6
我想搜索Error2,如果找到它,请搜索它的文件名,分别为file1和file3。
我知道如何分别搜索匹配项,但是想知道一旦找到另一个匹配项就向后搜索。
答案 0 :(得分:2)
我认为这是获取输出的漫长方法,但可以肯定。
my $file_nm = "";
while( my $line = <DATA> )
{
chomp($line);
if($line=~m/Reading\s+(.+)/)
{
$file_nm = $1;
}
if($line=~m/Error2/)
{
print "$line - found in $file_nm\n";
}
}
__DATA__
Reading file1
Error1
Error2
Error3
Reading file2
Error1
Error3
Error6
Reading file3
Error2
Error3
Error6
输出:
Error2 - found in file1
Error2 - found in file3