を使用して千単位の区切り文字を印刷したいです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}'