thanks for the responses. Here is what I've come up with. I'm getting
the following error however: "Can't use string ("13961170005719 FINC
D 0965874") as an ARRAY ref while "strict refs" in use at sort.pl line
37, <DATA> line 10."
You would probably find it easier with Ruby. Note that sorting on
the dates won't do you any good until you change their format to
yyyymmdd.
-----------------------------------------------------------------
Sort_fields = %w(sa name vt sss dob date)
class Array
def mysort( field, direction=:up )
raise "#{field} is invalid argument" unless
Sort_fields.include?(field)
out = sort_by{ |x| x[ Sort_fields.index( field ) ] }
out.reverse! if :down == direction
out
end
end
results = DATA.to_a.map{|line| line.split }
puts results.mysort( 'name' ).map{|x| x.join(" ")}
puts "-----"
puts results.mysort( 'sa', :down ).map{|x| x.join(" ")}
puts "-----"
puts results.mysort( 'sss', :up ).map{|x| x.join(" ")}
__END__
11960990009910 FENOFF A 001587407 03021976 08012005
18960990014211 MARKEM C 030350756 04141929 08032005
89961060004312 ENOS B 034401255 02071951 08012003
19961060012013 WOLF E 051667116 unknown 08011999
79961080011214 MAPLEDALE I 161029165 04131952 02012005
17961140002215 LAU J unknown 05091950 08112005
12961140017216 FINNERAN F 000000000 02121964 02012001
49961150000117 GALLOWAY H 007680783 02181960 11012005
16961150004018 BANK G 000000000 05111960 04122003
13961170005719 FINC D 096587493 10041970 04012005
----------------------------------------------------------------
Output:
16961150004018 BANK G 000000000 05111960 04122003
89961060004312 ENOS B 034401255 02071951 08012003
11960990009910 FENOFF A 001587407 03021976 08012005
13961170005719 FINC D 096587493 10041970 04012005
12961140017216 FINNERAN F 000000000 02121964 02012001
49961150000117 GALLOWAY H 007680783 02181960 11012005
17961140002215 LAU J unknown 05091950 08112005
79961080011214 MAPLEDALE I 161029165 04131952 02012005
18960990014211 MARKEM C 030350756 04141929 08032005
19961060012013 WOLF E 051667116 unknown 08011999
-----
89961060004312 ENOS B 034401255 02071951 08012003
79961080011214 MAPLEDALE I 161029165 04131952 02012005
49961150000117 GALLOWAY H 007680783 02181960 11012005
19961060012013 WOLF E 051667116 unknown 08011999
18960990014211 MARKEM C 030350756 04141929 08032005
17961140002215 LAU J unknown 05091950 08112005
16961150004018 BANK G 000000000 05111960 04122003
13961170005719 FINC D 096587493 10041970 04012005
12961140017216 FINNERAN F 000000000 02121964 02012001
11960990009910 FENOFF A 001587407 03021976 08012005
-----
12961140017216 FINNERAN F 000000000 02121964 02012001
16961150004018 BANK G 000000000 05111960 04122003
11960990009910 FENOFF A 001587407 03021976 08012005
49961150000117 GALLOWAY H 007680783 02181960 11012005
18960990014211 MARKEM C 030350756 04141929 08032005
89961060004312 ENOS B 034401255 02071951 08012003
19961060012013 WOLF E 051667116 unknown 08011999
13961170005719 FINC D 096587493 10041970 04012005
79961080011214 MAPLEDALE I 161029165 04131952 02012005
17961140002215 LAU J unknown 05091950 08112005