我有一个(重复)这样的日志文件:
<header>
<timestamp>2018-05-18T13:22:35.842</timestamp>
<requestedService>requestSchufameldungAbgeben</requestedService>
...
<errorCode>/IWBEP/CX_MGW_BUSI_EXCEPTION</errorCode>
我想要做的是下去,直到找到错误字符串“ CX_MGW_BUSI_EXCEPTION”,然后提取上面的错误字符串和时间戳。关于如何执行此操作的任何想法? 该脚本应重复遍历整个文件。
我已经尝试过类似的方法,但是我不知道如何继续进行下去:
while(my $line=<F>) {
if ( $line=~/^\s*<timestamp>/) {
while(my $nextline =<F>) {
if ($nextline =~ /BUSI_EXCEPTION/) {
print;
flag = 1;
}
}
}
}
答案 0 :(得分:1)
只需保存任何时间戳并在需要时打印即可:
while (my $line = <F>)
{
$timestamp = $1 if $line =~ /^\s*<timestamp>(.*)</;
print $timestamp, "\t", $1, "\n" if $line =~ />(.*BUSI_EXCEPTION.*)</
}