awk의 천 단위 구분 기호

awk의 천 단위 구분 기호

을 사용하여 천 단위 구분 기호를 인쇄하고 싶습니다 awk's printf.

그것에서는 bash매우 간단합니다.

> printf "a %'d b \n" 1234567
a 1,234,567 b
> LC_NUMERIC=fr_FR.utf8
> printf "a %'d b \n" 1234567
a 1 234 567 b

프로그램 을 사용하면 awk거의 작동합니다.

> cat > print.awk
{ printf "a %'d b\n",$1}
> echo 1234567 | awk -f print.awk
a 1,234,567 b

(로케일이 없어진 것 같습니다...)

그리고 명령줄에서:

> echo 1234567 | awk '{printf "%d\n",$1;}'
1234567
> echo 1234567 | awk '{printf "%'d\n",$1;}'
> echo 1234567 | awk '{printf "%\'d\n",$1;}'

노트

%'d가능할 때 마다 사용하고 싶은 해결 방법이 있습니다 .

답변1

변수를 사용하여 저장하면 됩니다 '.

echo 1234567 | q="'" awk '{printf "%"ENVIRON["q"]"d\n", $1}'
1,234,567

또는 다음과 같은 \047의미 로 사용되었습니다 '.

echo 1234567 | awk '{printf "%\047d\n", $1}'

이는 모든 POSIX awk에서 작동합니다( awk 에서는 작동하지 않음 mawk).

그리고 gawk:

echo 1234567 | awk '{printf "%""\x27""d\n", $1}'

관련 정보