gpt4 book ai didi

xmlstarlet - 使用 xmlstarlet 从 xml 文件中选择元素,语法不太正确

转载 作者:行者123 更新时间:2023-12-05 01:16:33 27 4
gpt4 key购买 nike

这是 xml 片段:

$ cat short.xml 
<hostnames>
<hostname name="yahoo.com" type="user"/>
<hostname name="ir1.fp.vip.sp2.yahoo.com" type="PTR"/>
</hostnames>
<hostnames>
<hostname name="Inc.com" type="user"/>
<hostname name="www.inc.com" type="PTR"/>
</hostnames>

期望的输出是:

yahoo.com | ir1.fp.vip.sp2.yahoo.com
Inc.com | www.inc.com

到目前为止,我所拥有的只是部分工作: $ xml sel -t -m "//hostname"-v "@name"-n short.xml

我似乎无法正确捕获 Type= 条件。 TIA。

最佳答案

另外两个只使用一次xmlstarlet的解决方案(无需迭代):

xmlstr='
<root>
<hostnames>
<hostname name="yahoo.com" type="user"/>
<hostname name="ir1.fp.vip.sp2.yahoo.com" type="PTR"/>
</hostnames>
<hostnames>
<hostname name="Inc.com" type="user"/>
<hostname name="www.inc.com" type="PTR"/>
</hostnames>
</root>
'

echo "$xmlstr" | xmlstarlet sel -T -t -m "//hostnames" -m "hostname[@type='user']" -v '@name' -o " | " -b -m "hostname[@type='PTR']" -v '@name' -n

echo "$xmlstr" | xmlstarlet sel -T -t -m "//hostname" -i "@type='user'" -v '@name' -o " | " -b -i "@type='PTR'" -v '@name' -n

关于xmlstarlet - 使用 xmlstarlet 从 xml 文件中选择元素,语法不太正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3135241/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com