How to sort on right most column
Eric W. Ziegast
ziegast at eng.umd.edu
Thu May 16 01:00:35 AEST 1991
Off the top of my head I did:
#!/usr/bin/perl
# Read in data from STDIN (or specified files) in to @lines
@lines = (<>);
# Subroutine to numerically compare last space-separated fields.
sub rightmost {
local(@a) = split(" ",$a);
local(@b) = split(" ",$b);
$a[$#a] <=> $b[$#b];
}
foreach (sort rightmost @lines) {
print;
}
After feeding it the following as standard input:
FOO BAR ACE CORPORATION SUNNYVALE 2.00
FOO BAR ACER COMPUTED COMPANY MILPITAS 20.00
FOO BAR APOLLO COMPUTER, INC. CHELMSFORD 1.00
FOO BAR APPLE COMPUTER, INC. CUPERTINO 8.00
FOO BAR BOEING TUKWILA 53.00
FOO BAR BOEING COMPUTER SERVICES EDDYSTONE 2.00
FOO BAR CITIBANK N. A. ANDOVER 4.00
FOO BAR CITIBANK NORTH AMERICA LONG ISLAND CITY 26.00
I got back:
FOO BAR APOLLO COMPUTER, INC. CHELMSFORD 1.00
FOO BAR ACE CORPORATION SUNNYVALE 2.00
FOO BAR BOEING COMPUTER SERVICES EDDYSTONE 2.00
FOO BAR CITIBANK N. A. ANDOVER 4.00
FOO BAR APPLE COMPUTER, INC. CUPERTINO 8.00
FOO BAR ACER COMPUTED COMPANY MILPITAS 20.00
FOO BAR CITIBANK NORTH AMERICA LONG ISLAND CITY 26.00
FOO BAR BOEING TUKWILA 53.00
There's probably a better way of doing this (isn't there always?), but
this is probably the most direct.
--
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
| Eric W. Ziegast Internet: ziegast at eng.umd.edu |
| Univ. of Merryland Phonenet: Eric@[301.405.3689] |
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
More information about the Comp.unix.shell
mailing list