使用 awk / print 格式化数字

Use*_*841 7 bash awk

我发现这个非常酷的代码可以提高上传/下载速度:

\n\n
awk \'{ if (l1) {\n        print "\xe2\x86\x93"($2-l1)/1024"kB/s ","\xe2\x86\x91"($10-l2)/1024"kB/s"\n    } else {\n        l1=$2; l2=$10;\n    }\n}\' <(grep wlan0 /proc/net/dev) <(sleep 1; grep wlan0 /proc/net/dev)\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,它最多返回 4 位小数。我宁愿没有小数。我以前能够使用bcprintf对数字进行四舍五入,但我似乎只能使用printin awk。这个问题有什么好的解决办法吗?

\n

pet*_*rph 5

#!/bin/awk -f\n{\n     if (l1) {\n             printf("\xe2\x86\x93 %.2f kB/s \xe2\x86\x91 %.2f kB/s\\n" \\\n               , ($2 - l1) / 1024, ($10 - l2) / 1024)\n     } else {\n             l1 = $2;\n             l2 = $10;\n     }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

%.2f是具有两位小数的浮点数。使用%.0for %i(整数)仅显示整数部分。

\n