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 (または、3 は最小幅を指定するだけの形式を好む場合があります。一般的な形式文字列の規則が適用されます。)

于 2013-02-14T18:38:35.193 に答える