【发布时间】:2017-11-12 04:09:36
【问题描述】:
我有几个包含多个部分的 xml 文件。
这些文件中的部分之一是“PublishMgr”。本节下方
有两行包含服务器名称和端口。我需要
提取服务器和端口并将它们放入变量中
并对它们运行查询。我真的不知道
任何简单的方法来做到这一点。我在考虑使用 awk 和 sed,但是
我对这些的了解是有限的。你能帮忙吗?
我已经达到了打印线条的目的。我可以使用 awk -F 来获取第一个条目的主机名和端口号,但不确定如何为第二行执行此操作?如果可能的话,我喜欢一次扫描而不是两次执行此查询?这个可以吗?
请注意我想将输出分配给 4 个不同的变量!
我的代码
cat filename | grep -A6 PublishMgr | grep "Address\|BacKMeUp"
文件的仅 XML-FILE/TXT 部分
<<!--==========================================-->
<!-- PublishMgr -->
<!--==========================================-->
<goandpublishme>
<ClassPub name="buylimit" pers="Y">
<prime>host9:1000</prime>
<backup>host145:9999</backup>
</ClassPub>
电流输出
<prime>host9:1000</prime>
<backup>host145:9999</backup>
期望的输出喜欢将结果分配给变量 请注意我想将输出分配给 4 个“不同的”变量。 所以我可以使用它们进行进一步的查询,比如一个简单的例子 cd abc/$srv1;grep 端口 $srv1.log。总之我需要有 $srv1 $srv2 $port1 $port2
srv1=host9
port1=1000
srv1=host145
port2=9999
【问题讨论】:
-
我建议使用 XML/HTML 解析器 (xmlstarlet, xmllint ...)。
-
发布一个带有有效 XML 的示例。