Ubuntu 20.04의 awk
( 1.3.4.20200120-2) 버그처럼 보입니다 . mawk
를 사용하여 필요한 소수 자릿수를 표시할 수 있지만 printf (%.*n*f)
다음 예에서 볼 수 있듯이 암시적인 "바닥"이 관련된 것처럼 소수는 항상 0으로 반올림됩니다.
예시 1:
$ echo "2.3 4.99789" | awk '{printf "%.2f %.2f\n", $1, $2}' 2,00 4,00
예 2:
$ cat testf 1.23 3.65 5.76 $awk '{ SUM += $1} END { printf "%.2f\n", SUM }' testf 9,00
답변1
이것은 문제가 되지 않았습니다 ( 예를 들어 를 사용할 때 bash에서는 awk
나타나지 않았지만 에서 나타남 ). 단순한 로캘 구성 오류/설정이었습니다.awk
bc
동유럽 로케일은 . ,
대신 소수 구분 기호로 를 사용합니다 .
. 내 로케일은 미국 설정과 SK 설정이 혼합되어 있었습니다.
해결책:
확인: cat /etc/default/locale
또는 locale
명령을 사용하여 LC_NUMERIC
.
예:LC_NUMERIC="sk_SK.UTF-8"
수정하다:
로컬로
.bashrc
.또는 다음을 사용하여 시스템 전체에 적용:
sudo update-locale LC_NUMERIC="en_US.UTF-8
그러면 올바르게 업데이트됩니다
/etc/default/locale
.