awk/print を使用した数値書式設定

awk/print を使用した数値書式設定

アップロード/ダウンロードを高速化する本当に素晴らしいコードを見つけました。

awk '{ if (l1) {
        print "↓"($2-l1)/1024"kB/s ","↑"($10-l2)/1024"kB/s"
    } else {
        l1=$2; l2=$10;
    }
}' <(grep wlan0 /proc/net/dev) <(sleep 1; grep wlan0 /proc/net/dev)

ただし、小数点以下4桁まで返されます。むしろ小数点がない方が良いでしょう。以前は、次のように数字を丸めることができました。紀元前または印刷機能printところでこれだけ使えるようですawk。この問題に対する良い解決策はありますか?

ベストアンサー1

#!/bin/awk -f
{
     if (l1) {
             printf("↓ %.2f kB/s ↑ %.2f kB/s\n" \
               , ($2 - l1) / 1024, ($10 - l2) / 1024)
     } else {
             l1 = $2;
             l2 = $10;
     }
}

%.2f小数点以下 2 桁の浮動小数点数です。整数部分のみを表示するには、%.0fまたは(整数)を使用してください。%i

おすすめ記事