Solução GNU estendida awk
:
awk 'BEGIN{
curr_d=strftime("%d/%b/%Y", systime());
PROCINFO["sorted_in"]="@val_num_desc"
}
$3~"^\["curr_d{ a[$8][$1]++ }
END{
for (cc in a) {
for (ip in a[cc]) {
print ip"-"cc":"a[cc][ip]; break
}
if (++c==20) break
}
}' /var/log/mywebsite.log > /home/mywebsite/www/countries2.txt
Para sua condição adicional "Eu gostaria de classificar a contagem dos últimos dígitos do endereço IP, que é após o prefixo do país, por exemplo, IN: 20" :
remova a linha if (++c==20) break
e adicione | sort -t: -k2nr | head -n20
ao final do comando.