我是perl的新手,想要从日志文件中提取信息(NAME,DESCR,PID,VID,SN)以供使用。下面是日志文件中一个条目的样本。
NAME: "data1023", DESCR: "some information"
PID: ABC-0123-xyz , VID: V01 , SN: ABC1234567
我尝试使用逗号分隔使用逗号作为分隔符,但它没有多大帮助。有人会建议更好地解决这个问题吗?
答案 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);
这完全取决于您希望如何呈现数据。所有这一切都是将每个条目的每个元素作为一个数组项,然后将每个条目作为数组项,构建一个数组数组。