如何使用 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
.