#!/usr/bin/perl while (<>) { chomp; my @k = ("Format","Vendor","Prod","Ver","SigID","Name","Sev"); my %e; if ($_ =~ /(^.{15}\s[\d\.\w\Q-_\E]+)\s(CEF.*?\|.*?\|.*?\|.*?\|.*?\|.*?\|.*?\|)/) { $s = $1; $c = $2; } print "\n" . $s . "\n"; @d = ($c =~ /[^\\]*?\|/g); for $j (0..7) { $d[$j] =~ s/\|$//; print $k[$j] . "\t" . $d[$j] . "\n"; } @a = ($_ =~ /\s[\w\._]+?=/g); @b = split /\s[\w\._]+?=/, $_; foreach $i (0..@a-1) { $a[$i] =~ s/=$//; $e{$a[$i]} = $b[$i+1]; } foreach $g (sort {$a cmp $b} keys %e) { print " >> " . $g . " " x (30 - length $g) . $e{$g} . "\n"; } }