업로드/다운로드 속도를 높이는 정말 멋진 코드를 찾았습니다.
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
소수점 이하 두 자리의 부동 소수점 숫자입니다. 정수 부분만 표시하려면 %.0f
또는 (정수)를 사용하세요 .%i
답변2
%.0f
인쇄 명세서에 추가하세요 .
예
echo "5.54" | awk '{printf "%.0f\n", $1}'
6의 출력을 제공합니다.
echo "5" | awk '{printf "%.0f\n", $1}'
출력 5를 제공합니다.