我正在从一系列日志文件中收集数据,每个日志中有3个字段:Test
,Host
和CPU TIME
。
每次解析日志时,我都需要将字段打印为三列,但每次都将结果打印在不同的行上。
每次解析文件时如何将新数据附加到相应的列?
我尝试使用push将结果合并为一个数组,但输出如下所示:
while(<FILE>) {
my($line) = $_;
# remove any trail space (the newline)
chomp($line);
my @datarow = $_;
my @datarow1 = $_;
if ($line =~ /Test ID /){
my @cols = split " ", $line;
my (@datarow)=($cols[0],$cols[3]);
#$csv->print($fh,\@datarow); # Array ref!
}
if($line =~ /Host Machine /){
my @cols = split " ", $line;
(@datarow1)=($cols[0],$cols[3],"\n");
push(@datarow1,@datarow);
$csv->print($fh,\@datarow1);
}
}
实际输出为:
TEST TIME HOST
Test tcp_sla_tap_read_regs_reset_test_seed_FA37D586+stap_stap_a53ss_axi1
Host scc058006 Host Machine : scc058006