1234567
Unix中数字加逗号,需要改成1,234,567
有可能在sed
or中awk
吗?如果是这样,请提供一些样品。
$ LC_NUMERIC=en_US
$ printf "%'.f" 1234567
1,234,567
由jim mcnamara提供:语言环境决定了千位分隔符会发生什么。
$ 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
最后一个没有逗号。您的结果没有逗号。你现在明白为什么了吗?区域设置 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