1

我想吐出 RAM 使用量占总 RAM 的百分比,使用top. 我到目前为止的脚本是

top -l 1 |
awk '/PhysMem/ {
    print "RAM\nwired:" $2/40.95 "% active:" $4/40.95 "% inactive:" $6/40.95 "% free:" $10/40.95 "%"
}'

我有 4gb RAM,因此除以 40.95,所以这个脚本吐出的东西看起来像:

RAM
wired:16.1172% active:46.2759% inactive:8.79121% free:28.8156%

我只希望它显示小数点后 1 位的百分比,我不知道该怎么做。我研究过使用bc,但总是收到非法语句错误。任何想法如何将其四舍五入到 awk 中的小数点后第 1 位?

4

1 回答 1

5

使用 awk 有几种方法可以做到这一点:

... | awk '{ print $2/40.95 }' OFMT="%3.1f"

... | awk '{ printf( "%3.1f\n", $2/40.95 )}'

每个都使用输出格式%3.1f来处理舍入。因此,您需要做的就是将参数添加OFMT="%3.1f"到您的 awk 调用中。(或者您可能更喜欢%0.1f The 3 的格式,只是给出了最小宽度;典型的格式字符串规则适用。)

于 2013-02-14T18:38:35.193 回答