Você precisa de um regex completo para isolar a string da versão em movimento. Delimitado o nome da base com um caractere não usado e classificá-lo como único.
Por exemplo, crie um arquivo de índice com = as delimter:
perl -le 'map { print "$1=$2" if /(\S+)-((\S+-\d+)-(x86_64|any)\.\S+)/ } @ARGV' *.pkg.tar.xz > pkgindex
Classifique-o como exclusivo e altere o delimitador de volta:
sort -t= -r -k1,1 -u pkgindex | sed s/=/-/ > freshpkgs
Não se esqueça de preencher a string de arquitetura com todos os valores conhecidos (x86_64, i386, any)!