在Unix中为数字添加逗号,需要将1234567
更改为1,234,567
是否可以sed
或awk
?如果是这样,请提供一些样品。
答案 0 :(得分:6)
$ LC_NUMERIC=en_US
$ printf "%'.f" 1234567
1,234,567
由jim mcnamara提供:Locale确定千位分隔符会发生什么。
$ 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语言环境没有千位分隔符。我猜你的语言环境也没有。
答案 1 :(得分:0)
我曾经使用过一次:
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