以下は2つの文字列です-
12/31/2011 05:34:27;U;11.comp;host=win workgroup=home username=bob cmemory=1325133456 qmemory=1325133456 smemory=1325133456 uptime=1325289867
12/31/2011 01:09:20;D;12.comp;host=win workgroup=home username=sam cmemory=1325151687 qmemory=1325151687 smemory=1325151687 uptime=1325228636 session=4677 downtime=1325270175 Exit_status=0
上記の文字列から、Perlの正規表現を使用して、、、、および値を選択しhost
ます。workgroup
username
uptime
downtime
以下は私のPerlスクリプトです-
foreach $line (<FILE>) {
if($line =~ m<\d{2}/\d{2}/\d{4}\s+\d{2}:\d{2}:\d{2};[U|D].*host=(\w+)\s+workgroup=(\w+)\s+hostname=(\w+)\s+.*uptime=(\d+)\s+.*(downtime=)?(\d*)>){
my $host = $1;
my $workgroup = $2;
my $hostname = $3;
my $uptime = $4;
my $downtime = $5;
print "host=$host workgroup=$workgroup hostname=$hostname uptime=$uptime downtime=$downtime\n";
}
}
私がここで直面している唯一の問題は、のためですdowntime
。この属性は行に存在しない可能性があります。このフィールドを正しく選択できません。