Veja se essa solução lhe atende.
echo '/repos/rpm/qa/centos6/x86_64/nome_pacoteA-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteB-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteC-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteD-xxx-base-1.0.1-45-1.2.1-20.x86_64.rpm' |
while read pacote
do
arq=$(basename $pacote)
arch=$(echo $arq | awk -F '.' '{print $(NF-1)}')
version=$(echo ${arq%.${arch}*} | grep -oE '[0-9.-]+$')
printf "%s\t%s\t%s\n" ${arq%${version}*} $arch ${version#-}
done