0

我是 perl 的新手,想从日志文件中提取信息(名称、DESCR、PID、VID、SN)以供使用。以下是日志文件中一项的示例。

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

我尝试使用逗号作为分隔符使用拆分,但它没有多大帮助。有人可以提出更好的方法来解决这个问题吗?

4

1 回答 1

3

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

#!/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);

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

于 2012-07-17T07:00:07.757 回答