awk数学出力を小数点以下2桁に制限する方法

awk数学出力を小数点以下2桁に制限する方法

私のコマンドは次のとおりです。アイドルCPUと使用されているCPUを次の形式で印刷します。 awk出力を小数点以下の2桁に制限したいです。

grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} {free=($5)*100/($2+$3+$4+$5)} END {print "Used Cpu:",usage "%"} {print "Free Cpu:",free "%"}'

出力:

Free Cpu: 98.9588%

Used Cpu: 1.04125%

希望の出力:

Free Cpu: 98.95%

Used Cpu: 1.04%

ベストアンサー1

いくつかのコードレビュー:

  • awkはgrepの機能を実行できるため、パイプは必要ありません。
  • 信頼性を向上させるために、awkコードに改行を追加してください

たとえば、

awk '$1 == "cpu" {
  printf "Used Cpu: %5.2f%%\n", 100*($2+$4)/($2+$4+$5)
  printf "Free Cpu: %5.2f%%\n", 100*$5/($2+$3+$4+$5)
}' /proc/stat

出力がうまく整列しました。

Used Cpu:  5.34%
Free Cpu: 94.63%

おすすめ記事