我当前的脚本提供带有许多小数位的输出。有没有办法在输出中只获得 1 个位置?
# cat sample
HDD Used: 15.0223T
HDD Total: 55.9520T
# cat sample | awk ' /HDD Total/ { hdd_total=$NF }
/HDD Used/ { hdd_used=$NF }
END {
used=hdd_total-hdd_used
print "cal =" used}'
Run Code Online (Sandbox Code Playgroud)
电流输出
cal =40.9297
Run Code Online (Sandbox Code Playgroud)
所需的输出
cal =40.9
---> 只有一位小数
得到这个错误
# isi storagepool list -v| grep -i 'HDD Total:' | awk '{print "HDD Total=%.1f", $NF -1 " TB" }'
HDD Total=%.1f 54.952 TB
#cat isistorage1
7.332T n/a (R) 13.01% (T)
# cat isistorage1 | awk '{ …
Run Code Online (Sandbox Code Playgroud) 应该是这样的0.972
/
3
=0.324
是这里的实际值。因此,如果 的值HDD Used
在G 中,则应以 TB 为单位进行计算,然后进行除法。
# isi storagepool list -v |
awk '
/Requested Protection:/ { parity=substr($NF,length($NF)-1,1) }
/Nodes:/ { nodes=$NF }
/HDD Total/ { hdd_total=$NF }
/HDD Used/ { hdd_used=$NF }
END {
multiplier=nodes-parity
total=hdd_total/nodes*multiplier
used=hdd_used/nodes
print "parity =" parity
print "NodeNumber =" nodes
print "Total =" total "TB"
print "Effective Total volume = " total*0.8 " TB"
print "USED =" used "%"
print "Effective used=" used*multiplier*0.8 " …
Run Code Online (Sandbox Code Playgroud)