在Unix中为数字字符串添加逗号

时间:2013-02-03 00:20:31

标签: linux shell unix

在Unix中为数字添加逗号,需要将1234567更改为1,234,567

是否可以sedawk?如果是这样,请提供一些样品。

2 个答案:

答案 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