AWK 保留一位小数

Sha*_*ker 3 awk

我当前的脚本提供带有许多小数位的输出。有没有办法在输出中只获得 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 '{ print "Snapshot USED=", $1}'
Snapshot USED= 7.332T
Run Code Online (Sandbox Code Playgroud)

αғs*_*нιη 10

您可以改用printf "cal =%.1f\n", used它,因为它具有打印类型修饰符控制和区域。

.1f有办法,只有一个浮点后打印1位小数,您可以将其更改为您在小数想要的任何号码。