#!/usr/bin/perl -l
# http://perlmonks.org/?node_id=1186568
use strict;
use warnings;
my @secondpass;
my %keys;
while(<DATA>)
{
push @secondpass, $_;
$keys{$_}++ for /SATID (\d\d)/g;
}
my @keyorder = sort keys %keys;
for (@secondpass)
{
my %items = reverse /(SATID (\d\d).{27})/g;
print join ' ', map { $items{$_} // ' ' x 35 } @keyorder;
}
__DATA__
SATID 02 VAL1 32 VAL2 275 SIGNAL 43 SATID 24 VAL1 10 VAL2 098 SIGNAL 1
+2 SATID 41 VAL1 87 VAL2 180 SIGNAL 15
SATID 24 VAL1 41 VAL2 103 SIGNAL 56 SATID 02 VAL1 41 VAL2 154 SIGNAL 3
+1 SATID 41 VAL1 93 VAL2 124 SIGNAL 21
SATID 41 VAL1 23 VAL2 132 SIGNAL 23 SATID 24 VAL1 32 VAL2 034 SIGNAL 3
+2 SATID 02 VAL1 23 VAL2 145 SIGNAL 31
SATID 41 VAL1 63 VAL2 305 SIGNAL 62 SATID 33 VAL1 31 VAL2 174 SIGNAL 4
+4 SATID 02 VAL1 45 VAL2 205 SIGNAL 34
|