答案1
使用XML小星:
xmlstarlet sel -t -m '//APPLIANCE' -v 'concat(NAME/text()," ",STATUS/text())' -nl file.xml
对于给定的数据,这将产生
METASYNC Online
DELTA Offline
它通过查找 XML 文档中的所有节点并使用中间的空格APPLIANCE
连接它们的值NAME
和子节点来实现此目的。在输出每个 的结果后,最后插入一个STATUS
换行符。-nl
APPLIANCE
如果您想要列标题和更好的表格格式:
( echo 'Device_name Status'
xmlstarlet ...as above... ) | column -t
答案2
您可以使用它来获得所需的输出
$ echo "DEVICE-NAME STATUS" ; grep -e NAME -e STATUS <filename> | sed 's#NAME##g ; s#STATUS##g ; s#<>## ; s#</>##' | xargs -L2 | column -t
输出:
DEVICE-NAME STATUS
METASYNC Online
DELTA OFFLINE