У меня есть файл .xml, и я пытаюсь выполнить «групповую установку» на машине RHEL6, поскольку в этом файле XML есть несколько сотен библиотек ... (около 16 000 строк).
Поэтому я пытаюсь извлечь имена групп, содержащиеся в XML-файле, который имеет такую структуру:
<b>
<group>
<id> group name </id>
<packages>
...
</packages>
<id> group name 2 </id>
<packages>
...
</packages>
<id> etc... </id>
</group>
</b>
По сути, это то, что я пробовал:
sed -n '/<id>/,/<\/id>/p' test1.txt > test2.txt
Я скопировал XML-файл в test1.txt. Я пытаюсь извлечь имена групп из test1.txt во второй файл с именем test2.txt. Тем не менее, со строкой выше, он извлекает все от первого <id>
тега до последнего </id>
тега в моем файле. Как я могу изменить свой код, чтобы извлечь его несколько раз?
Мой второй вопрос: плагин -downloadon работает также с группами для yum?
Ответы:
Похоже, что вам нужно больше что-то вроде
(Предположим, как в вашем примере, что
<id>
и</id>
находятся в одной строке, и что в<id>...</id>
каждой есть только один ).Или используйте инструмент с поддержкой XML:
источник
Пожалуйста, попробуйте с
источник
Это будет работать с любым тегом, конечно же, с
<a href="...">...</a>
якорями. Не используются GNUisms -sed
достаточно поддержки базовых регулярных выражений .Однако : обратите внимание, что открывающие и закрывающие теги должны находиться в одной строке, в противном случае оператор придется переписать заново.
источник
Это XML, вы должны использовать синтаксический анализатор XML. Вот решение с использованием XMLStarlet :
Выражение XPath
//group/id
выберет любойid
узел подgroup
узлом. В-t -v
означает «использовать следующий шаблон для извлечения значений». В-nl
конце убедитесь, что вывод заканчивается новой строкой.В приведенном выше примере используется XML-файл, идентичный вашему, но с
...
удаленной строкой .источник
Я прочитал этот пост, пытаясь решить проблему извлечения Reqd. Пакеты с DVD RHEL 7.3
repos.xml
, которые, как мне кажется, именно то, что автор выше пытался сделать. Поэтому я надеюсь, что этот сценарий может помочь кому-то еще ... Я использовал его много раз.Поэтому мне нужно было установить группу «GNOME DESKTOP» на мой сервер RHEL7 «Минимальная установка», на котором не был настроен X / GUI.
Хммммм ... нет списка групп на DVD для yum (да, я попробовал все обычное исправление "google", и он никогда не работал), поэтому прибегнул к жесткому источнику списка из xml.
Предполагая, что вы бежали
createrepo /your/local_rpms/dir
.источник