Sortie de rpm-qa, comment extraire uniquement le nom du paquet?

Le format de sortie de la commande rpm -qa ressemble à ce qui suit :

abrt-1.1.14-1.fc14.x86_64
abrt-addon-ccpp-1.1.14-1.fc14.x86_64
abrt-addon-kerneloops-1.1.14-1.fc14.x86_64
abrt-addon-python-1.1.14-1.fc14.x86_64
abrt-desktop-1.1.14-1.fc14.x86_64
abrt-gui-1.1.14-1.fc14.x86_64
abrt-libs-1.1.14-1.fc14.x86_64
abrt-plugin-bugzilla-1.1.14-1.fc14.x86_64
abrt-plugin-logger-1.1.14-1.fc14.x86_64
abrt-plugin-runapp-1.1.14-1.fc14.x86_64

Quelqu'un peut-il me dire comment supprimer de manière fiable la version, la version et la partie arche pour que je me retrouve avec

abrt
abrt-addon-ccpp
abrt-addon-kerneloops
abrt-addon-python
abrt-desktop
abrt-gui
abrt-libs
abrt-plugin-bugzilla
abrt-plugin-logger
abrt-plugin-runapp

Je préfère éviter d'essayer de construire une expression régulière pour sed, car je m'attends à ce que ce soit compliqué pour prendre en charge des noms comme super-3d-editor-0.1-1.fc14.x86_64 ou similaire. Je suis sûr que je ne suis pas la première personne à vouloir un tel filtrage, donc je demande ici pour vérifier s'il existe déjà une solution.

Mise à jour : La note "ou similaire" ci-dessus implique certaines connaissances sur le paquet rpm on dirait des noms. La plupart d'entre eux sont "beaux" comme ceux présentés ci-dessus, mais il existe également des entrées avec des schémas de numérotation plus divers:

fxload-2002_04_11-9.fc12.x86_64
GitPython-0.2.0-0.3.beta1.fc14.noarch
ModemManager-0.4-4.git20100720.fc14.x86_64
python-peak-rules-0.5a1.dev-12.a1.dev.20100803svn2646.fc14.noarch
pytz-2010h-3.fc14.noarch

Notez également qu'il existe des paquets où un numéro de version fait partie du nom comme

java-1.5.0-gcj-1.5.0.0-34.fc14.x86_64
java-1.6.0-openjdk-1.6.0.0-49.1.9.3.fc14.x86_64
java-1.6.0-openjdk-devel-1.6.0.0-49.1.9.3.fc14.x86_64

Et il y en a même quelques-uns où la version / arche est manquante (ceux-ci peuvent être difficile à gérer, et je peux accepter de ne pas les gérer)

bouml-doc-4.3.2-3.noarch
fedora-release-14-1.noarch
glibc-2.12.90-21.i686
basesystem-10.0-3.noarch
ivtv-firmware-20080701-20.noarch
gpg-pubkey-97a1071f-4c49d6fe

C'est pourquoi j'ai demandé un moyen fiable de le faire; je savais que créer un une expression régulière sed approximative serait possible mais elle ne gérerait pas de nombreuses lignes.


(Je sais qu'il est possible de formater la sortie de rpm avecquerqueryformat, mais cela ne m'aidera pas car je veux comparer les paquets que j'ai installés aujourd'hui en les comparant avec une liste rpm -qa générée un an il y a.)

rpm
demandé sur