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}'

関連情報