J'essaie d'obtenir une liste de tous les paquets installés sur mon système. Pour cela j'appelle 'rpm -qai' depuis un script Python où d'autres transformations sur la sortie ont lieu.Formater une sortie de requête RPM avec un séparateur
J'ai un peu couru dans le problème maintenant que la sortie de la requête ci-dessus ne sépare pas les différents paquets. Cela ressemble à ceci:
$ rpm -qai
Name : PackageName
Version : 1.0
...
LastEntry: Something
Name : NextPackageName
Version : 1.1
...
Ce que je veux quelque chose le long de la ligne de
Name : PackageName
Version : 1.0
...
LastEntry: Something
//empty line or some other kind of separator
Name : NextPackageName
Version : 1.1
...
Depuis mon script lit ligne de tout pour la ligne et enregistre les lignes dans un dictionnaire. Ma solution de contournement vérifie dès maintenant si la ligne courante commence par 'Nom' et si c'est le cas, procède à l'ajout du dictionnaire à une liste et efface le dictionnaire; cette étape est ignorée pour la toute première ligne.
Cette solution est assez moche. Malheureusement, un nombre fixe de lignes ne fonctionne pas car tous les paquets ne fournissent pas la même quantité d'informations. J'ai aussi pensé à lancer 'rpm -qai' en premier, en récupérant une liste de tous les noms de paquets, puis en parcourant la liste en appelant 'rpm -qi current_item'. Ensuite, on pourrait saisir la sortie de chaque requête. Mais comme cela nécessite deux passages, je considère que cela ne nécessite pas de travail supplémentaire.
Alors, RPM (ou un autre outil) fournit-il une fonctionnalité qui permettrait la sortie désirée?
Ceci est une bonne suggestion, mais pas vraiment une réponse. –