我有一个如下所示的日志文件:
4680 p4exp/v68 PJIANG-015394 25:34:19 IDLE none
8869 unnamed p4-python R integration semiconductor-project-trunktip-turbolinuxclient 01:33:52 IDLE none
8870 unnamed p4-python R integration remote-trunktip-osxclient 01:33:52
在同一个日志文件中有许多这样的条目,因此有些条目最后不包含 IDLE none,而有些则不包含。我想在哈希中保留具有“R 集成”和“IDLE none”的那些并忽略其余部分。我尝试了以下代码,但没有得到想要的结果。
#!/usr/bin/perl
open (FH,'/root/log.txt');
my %stat;
my ($killid, $killid_details);
while ($line = <FH>) {
if ($line =~ m/(\d+)/){
$killid = $1;
}
if ($line =~ /R integration/ and $line =~ /IDLE none/){
$killid_details = $line;
}
$stat{$killid} = {
killid => $killid_details
};
}
close (FH);
我得到了 R 集成的所有行(例如,我得到 8869、8870 行),这不应该是因为 8870 应该被忽略。
如果有任何错误,请告诉我。我还在学习perl。谢谢你。