如何只显示XML文件中开始和结束标签之间的内容?

如何只显示XML文件中开始和结束标签之间的内容?

如何使用 grep 或类似方法搜索 XML 文件中的特定标签,但仅显示开始标签和结束标签之间的内容?这是我想要找到的确切标签:

<max-diskusage>1024000000</max-diskusage>

但我只想获取 1024000000 部分而不是标签。

这是以字节为单位的存储大小,如果可能,请将其转换为 1 GB,或将任何结果转换为 GB。

答案1

用于xmlstarlet解析 XML 文档中的任何max-diskusage标记实例,提取其值,然后使用 GNUnumfmt将字节数转换为 SI 单位:

xmlstarlet sel -t -v '//max-diskusage' -nl file | numfmt --to=si

对于问题中的简短示例file,这将返回字符串1.1G。使用--to=iec(获得传统的二次幂大小)代替--to=si,它返回977M。使用--to=si --round=down来获取1.0G.

相关内容