#! /bin/sh
# mergescores file1 file2 ... filen > output
# Merge hack scorefiles, file1 file2 ... filen.  Only the highest score
#   for each character played by a given user is retained.  User names
#   are forced to lowercase before comparison, but case is retained in
#   the output.
#
PATH="/usr/ucb:/usr/bin:/bin"
cat $* | \
sed '
s/ /,/
s/ /,/
s/ /,/
s/ /,/
s/ /,/
s/ /,/
s/ /,/
s/ /,/
h
s/[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,//
s/,.*/,/
y/ABCDEFGHIJKLMNOPQRSTUVWXYZ_/abcdefghijklmnopqrstuvwxyz /
G
s/\n//
' | \
sort -t, +0 -1 +8 -9 +7nr -8 | \
awk -F, '$9 ~ /^.[MF]$/ && ( $9 != type || $1 != name ) \
         { print $0 ; type = $9 ; name = $1 }' - | \
sort -t, +7nr -8 +1n -2 | \
sed '
s/[^,]*,//
s/,/ /
s/,/ /
s/,/ /
s/,/ /
s/,/ /
s/,/ /
s/,/ /
s/,/ /' | \
head -100
