我有一个名为startup-cfg.xml的文件,其中包含
<futurePbRst>
<fsPbProviderStpStatus>enabled</fsPbProviderStpStatus>
</futurePbRst>
<fsPbRstCVlanBridgeTable>
<fsPbRstCVlanBridgeEntry>
<fsPbRstPort>1</fsPbRstPort>
</fsPbRstCVlanBridgeEntry>
</fsPbRstCVlanBridgeTable>
<fsPbRstCVlanPortInfoTable>
<fsPbRstCVlanPortInfoEntry>
<fsPbRstPort>1</fsPbRstPort>
<fsPbRstCepSvid>1</fsPbRstCepSvid>
</fsPbRstCVlanPortInfoEntry>
</fsPbRstCVlanPortInfoTable>
<interface>
<name>eth0</name>
</interface>
<interface>
<name>lo</name>
</interface>
<interface>
<name>pan0</name>
</interface>
<interface>
<name>sim0</name>
</interface>
<interface>
<name>sim1</name>
</interface>
我想触发一个curl命令从这个xml文件中获取一个特定的标记值。我可以这样做吗?
运行命令curl http://127.0.0.1:50000/netconf/startup-cfg.xml会将整个文件内容作为输出。
答案 0 :(得分:0)
curl
不解析XML。尝试将curl
的输出汇总到xmllint
:
curl http://127.0.0.1:50000/netconf/startup-cfg.xml \
| xmllint --xpath '//futurePbRst/fsPbProviderStpStatus/text()' -
答案 1 :(得分:0)
你可以试试这个:
var=$(curl http://127.0.0.1:50000/netconf/startup-cfg.xml)
variable=$(grep -oPm1 "(?<=<particular_tag>)[^<]+" <<< "$var")
echo $variable