in reply to Sort log file alphabetically
Read in all the records into an array of hashes. Then you can decide how to re-format/sort them them.
Here's a simple parser based on what your format seems to be:
Now it doesn't matter what order the fields are in. To determine all the fields present in any of the records, you can use:my @list; while (<>) { chomp; my (%hash, @rest); ($hash{first}, $hash{date}, @rest) = split(",", $_); for my $r (@rest) { my ($k, $v) = split(' ', $r, 2); $hash{$k} = $v; } push(@list, \%hash); }
I'm just assuming that you want the first two fields to remain where they are. The rest will be sorted alphabetically.my %seen; for (@list) { for (keys %$_) { $seen{$_}++ } }; delete $seen{first}; delete $seen{date}; my @allkeys = ('first', 'date', sort keys %seen);
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Sort log file alphabetically
by numberninja (Initiate) on Jul 28, 2008 at 19:24 UTC | |
Re^2: Sort log file alphabetically
by numberninja (Initiate) on Jul 28, 2008 at 15:49 UTC | |
by pc88mxer (Vicar) on Jul 28, 2008 at 16:06 UTC | |
by numberninja (Initiate) on Jul 28, 2008 at 16:46 UTC | |
by broomduster (Priest) on Jul 28, 2008 at 17:26 UTC |
In Section
Seekers of Perl Wisdom