awk에서 계산을 수행할 때 소수점 이하 두 번째 자리로 반올림합니다.

awk에서 계산을 수행할 때 소수점 이하 두 번째 자리로 반올림합니다.

간단한 예는 다음과 같습니다.

echo "36974820" | awk '{print "("$1 " KB)" " (" $1/1024 " MB)" " (" $1/1024/1024 " GB)\n"}'

산출:

(36974820 KB) (36108.2 MB) (35.2619 GB)

내가 원하는 것은 다음과 같습니다.

(36974820 KB) (36108.2 MB) (35.26 GB)

다음은 단독으로 사용할 수 있다는 것을 알고 있습니다.

echo "5.5434" | awk '{printf "%.2f\n", $1}'

출력은 다음과 같습니다

5.54

위의 내용을 awk와 결합하여 소수점 이하 두 번째 자리로 반올림하는 계산을 수행하고 싶습니다.

답변1

(적어도 GNU awk) printf대신 직접 사용할 수 있습니다 print.awk

user@host $ echo "36974820" | awk '{printf("(%d kB)  (%.2f MB)  (%.2f GB)\n", $1, $1/1024, $1/1024/1024)}'
(36974820 kB)  (36108.22 MB)  (35.26 GB)

관련 정보