Nyilván volt már bash-megoldás, de csak úgy hobbiból megpróbáltam:
#!/bin/bash
declare -A tab
while IFS=$'\n\r\t ' read A B C; do
if [ x"$C" = x"" ]; then
C="$B"
fi
if [[ -v tab["$C"] ]]; then
if [ "$A" -gt "${tab[$C]}" ]; then
tab["$C"]="$A"
fi
else
tab["$C"]="$A"
fi
done
printf '%s\n' "${!tab[@]}" | sort | while read i; do
printf $'UPDATE servers SET backup=\'%s\' WHERE hostname=\'%s\';\n' "${tab[$i]}" "$i"
done