Unix では数字にコンマを追加します。次のように変更する必要があります1234567
。1,234,567
またはで可能ですsed
かawk
?もしそうなら、いくつかのサンプルを教えてください。
$ LC_NUMERIC=en_US
$ printf "%'.f" 1234567
1,234,567
jim mcnamaraの厚意による: ロケールによって、3 桁ごとの区切り記号がどうなるかが決まります。
$ export LC_NUMERIC="en_US.UTF-8"
$ printf "%'f\n" 1234567.777
1,234,567.777000
$ export LC_NUMERIC=C
$ printf "%'f\n" 1234567.777
1234567.777000
この最後のものにはコンマがありません。結果にはコンマがありませんでした。理由がわかりましたか?Locale LC_NUMERIC 設定が答えです。C ロケールには千単位の区切り文字がありません。あなたのロケールもそうではないと思います。
私はこれを一度使用しました:
echo "1234567890" | \
sed -e ': L
s/\([0-9]\{1,19\}\)\([0-9]\{3\}\)/\1,\2/
t L'
動作するはずです
http://www.linuxquestions.org/questions/programming-9/format-numbers-using-bash-672031/#post4269148