首页 > 解决方案 > 如何在xmlstarlet中获得没有指数的SUM?

问题描述

在 xmlstarlet 中使用 SUM 时。我得到指数的结果。

xmlstarlet sel -t -v "sum(VM_POOL/VM/MONITORING/MEMORY)"/tmp/file.xml 
3.058237512e+09

如果我使用 awk 得到 SUM。我得到了想要的数字。

xmlstarlet sel -t -v VM_POOL/VM/MONITORING/MEMORY /tmp/file.xml|awk '{u = u+$1}; END { print u }'
3058237512

如何让这些数字只使用 xmlstarlet?

样本输入数据

<VM_POOL>
  .....
  <VM>
   <ID>1111</ID>
   <MONITORING>
     <MEMORY><![CDATA[2153128]]></MEMORY>
   </MONITORING>
  </VM>
  <VM>
   <ID>1112</ID>
   <MONITORING>
      <MEMORY><![CDATA[2153128]]></MEMORY>
   </MONITORING>
  </VM>
  .....
</VM_POOL>

标签: sumxmlstarlet

解决方案


推荐阅读