을 사용하여 천 단위 구분 기호를 인쇄하고 싶습니다 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}'