如何从perl中的日志文件中提取数据

时间:2012-07-17 05:38:20

标签: regex string perl file

我是perl的新手,想要从日志文件中提取信息(NAME,DESCR,PID,VID,SN)以供使用。下面是日志文件中一个条目的样本。

NAME: "data1023", DESCR: "some information"
PID: ABC-0123-xyz      , VID: V01 , SN: ABC1234567

我尝试使用逗号分隔使用逗号作为分隔符,但它没有多大帮助。有人会建议更好地解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

你没有给我们太多但基于一些假设,包括但不限于每个条目2-lins,这里是你可以根据自己的喜好建立的快速解决方案。

#!/usr/local/bin/perl

use strict;
use warnings;
use Data::Dumper;

my $lineno;
my @parts;
my $entryno;
my $line;
my @log;

while (<>) {
    $line = $_;
    chomp $line;
    $lineno++;
    if ( $lineno % 2 ) {

        #It is line one of the entry
        $entryno++;
        @parts = split( /,\s*/, $line );
    }
    else {
        push( @parts, split( /,\s*/, $line ) );

        push( @log, [@parts] );
    }
}

print Dumper(\@log);

这完全取决于您希望如何呈现数据。所有这一切都是将每个条目的每个元素作为一个数组项,然后将每个条目作为数组项,构建一个数组数组。

相关问题