J'ai un fichier .xml et j'essaie de faire une "installation de groupe" sur une machine RHEL6 car il y a plusieurs centaines de bibliothèques dans ce fichier .xml ... (près de 16 000 lignes).
J'essaie donc d'extraire les noms de groupe contenus dans le fichier .xml qui a cette structure:
<b>
<group>
<id> group name </id>
<packages>
...
</packages>
<id> group name 2 </id>
<packages>
...
</packages>
<id> etc... </id>
</group>
</b>
En gros, c'est ce que j'ai essayé:
sed -n '/<id>/,/<\/id>/p' test1.txt > test2.txt
J'ai copié le fichier .xml dans test1.txt. J'essaye d'extraire les noms de groupe du test1.txt dans un deuxième fichier appelé test2.txt. Cependant, avec la ligne ci-dessus, il extrait tout de la première <id>
balise à la dernière </id>
balise de mon fichier. Comment puis-je changer mon code pour l'extraire plusieurs fois?
Ma deuxième question serait: le plugin -downloadonly fonctionne-t-il aussi avec les groupes pour yum?
Réponses:
On dirait que ce dont vous avez besoin est plus quelque chose comme
(en supposant comme dans votre échantillon que le
<id>
et</id>
sont sur la même ligne et qu'il n'y en a qu'un<id>...</id>
par ligne).Ou utilisez un outil compatible XML:
la source
Veuillez essayer avec
la source
Cela fonctionnera avec n'importe quelle balise, bien sûr aussi avec des
<a href="...">...</a>
ancres. Aucun GNUismes utilisé - le support de base des regexsed
suffira.Cependant : veuillez noter que les balises d'ouverture et de fermeture doivent être sur la même ligne, sinon l'instruction devrait être réécrite à nouveau.
la source
Il s'agit de XML, vous devez utiliser un analyseur XML. Voici une solution utilisant XMLStarlet :
L'expression XPath
//group/id
sélectionnera n'importe quelid
nœud sous ungroup
nœud. Le-t -v
moyen "utilise le modèle suivant pour extraire les valeurs". Le-nl
à la fin s'assurera que la sortie se termine par une nouvelle ligne.L'exemple ci-dessus utilise un fichier XML identique au vôtre, mais avec toute ligne contenant
...
supprimé.la source
J'ai lu cet article dans le but de résoudre le problème d'extraction de Reqd. Paquets du DVD RHEL 7.3
repos.xml
, ce que je pense est exactement ce que l'auteur ci-dessus essayait de faire. J'espère donc que ce script pourra aider quelqu'un d'autre… Je l'ai utilisé plusieurs fois maintenant.J'ai donc dû installer le groupe "GNOME DESKTOP" sur mon serveur RHEL7 "Installation minimale" qui n'avait pas de X / GUI configuré.
Hmmmmm… pas de liste de groupe sur le DVD pour yum (yep, j'ai essayé tous les correctifs habituels de "google" et je n'ai jamais travaillé) alors j'ai eu recours à une source matérielle de la liste à partir de xml.
En supposant que vous ayez couru
createrepo /your/local_rpms/dir
.la source