我有一个 .xml 文件,我正在尝试在 RHEL6 机器上执行“groupinstall”,因为该 .xml 文件中有数百个库......(接近 16 000 行)。
因此,我试图提取具有以下结构的 .xml 文件中包含的组名:
<b>
<group>
<id> group name </id>
<packages>
...
</packages>
<id> group name 2 </id>
<packages>
...
</packages>
<id> etc... </id>
</group>
</b>
Run Code Online (Sandbox Code Playgroud)
基本上,这就是我尝试过的:
sed -n '/<id>/,/<\/id>/p' test1.txt > test2.txt
Run Code Online (Sandbox Code Playgroud)
我将 .xml 文件复制到 test1.txt。我试图将组名从 test1.txt 提取到名为 test2.txt 的第二个文件中。但是,在上面的行中,它提取了我文件中从 FIRST<id>标签到最后一个</id>标签的所有内容。如何更改我的代码以多次提取它?
我的第二个问题是:-downloadonly 插件是否也适用于 yum 组?
Sté*_*las 39
听起来你需要的是更多的东西
sed -n 's:.*<id>\(.*\)</id>.*:\1:p'
Run Code Online (Sandbox Code Playgroud)
(假设在您的示例中<id>和</id>位于同一行并且<id>...</id>每行只有一个)。
或者使用 XML-aware 工具:
xmlstarlet sel -t -v '//id' -n
Run Code Online (Sandbox Code Playgroud)