awk에서 선행 0(패딩)을 인쇄하는 방법은 무엇입니까?

awk에서 선행 0(패딩)을 인쇄하는 방법은 무엇입니까?

99.11111099.11와 같이 인쇄하려고 합니다 AWK.

나는 성공하지 못한 채 다음 변형을 시도했습니다.

$ awk '{printf ("%000.2f\n", $1);}' <<< 99.111111
99.11
$ awk '{printf ("%3.2f\n", $1);}' <<< 99.111111
99.11
$ awk '{printf ("%03.2f\n", $1);}' <<< 99.111111
99.11

답변1

awk를 사용하십시오.

$ awk '{printf("%06.2f\n", $1)}' <<< 99.111111
099.11

패딩 길이는 형식화된 전체 숫자를 고려하므로 소수 부분은 3문자( 정밀도 숫자 .도 포함 2)를 사용하므로 정수 부분을 길이 3으로 패딩하려면 패딩 길이를 6으로 설정해야 합니다. . 패딩은 기호(있는 경우)도 고려합니다. 예를 들어 ¹ -1형식으로 지정됩니다.-01.00


¹ 또는 가능 -01,00하거나 -01٫00사용자의 로케일 및 awk구현에 따라 다릅니다². GNU의 경우 환경에 변수가 있는지 여부 awk에 따라 달라집니다 .POSIXLY_CORRECT

관련 정보