Aqui está um script perl simples:
#!/usr/bin/perl -n
#
sub printall {
foreach my $wwn (@wwns) {
foreach my $obj (@objects) {
print "$name $wwn $obj\n";
}
}
}
if (/name=(.*)/) {
if ($name) {
printall;
}
$name = $1;
@wwns = ();
@objects = ();
} elsif (/WWN=(.*)/) {
push @wwns, $1;
} elsif (/objectID=(.*)/) {
push @objects, $1;
}
END {
printall;
}
Faz um loop sobre a linha em um arquivo, coletando as WWN
s e objectId
s. Então, toda vez que encontrar uma linha com name=
ou o final do arquivo, ele imprime o que foi coletado, na ordem do seu exemplo.