Bash 如何在printf中显示点%s\n“;10000?

Bash 如何在printf中显示点%s\n“;10000?,bash,printf,Bash,Printf,我有命令printf“%s\n”。我希望该命令可以用点(.000)分隔零 e、 g: printf“%s\n”300.77 300.77 我想要 printf“%s\n”1000000 1.000.000 您能帮我解决我的问题吗?您必须使用%f格式来指定将该值视为浮点数 $ printf "%7.4f\n" 12.2 12.2000 $ printf "%7.4f\n" 12.23576 12.23574 12.2358 12.2357 $ 如果目标是将本地千位分隔符放入输出,则需要支持pri

我有命令
printf“%s\n”
。我希望该命令可以用点(
.000
)分隔零

e、 g:

printf“%s\n”300.77

300.77

我想要

printf“%s\n”1000000

1.000.000


您能帮我解决我的问题吗?

您必须使用
%f
格式来指定将该值视为浮点数

$ printf "%7.4f\n" 12.2
12.2000
$ printf "%7.4f\n" 12.23576 12.23574
12.2358
12.2357
$
如果目标是将本地千位分隔符放入输出,则需要支持
printf()
格式中的
'
修饰符:

$ printf "%'d\n" 1223576 1223574
1,223,576
1,223,574
$
该行为取决于区域设置:

$ echo $LANG
en_US.UTF-8
$ (export LANG=de_DE.UTF-8; printf "%'d\n" 1223576 1223574)
1223576
1223574
$ (export LANG=dk_DK.UTF-8; printf "%'d\n" 1223576 1223574)
1,223,576
1,223,574
$ (export LANG=it_IT.UTF-8; printf "%'d\n" 1223576 1223574)
1223576
1223574
$ (export LANG=gr_GR.UTF-8; printf "%'d\n" 1223576 1223574)
1,223,576
1,223,574
$ 

在Mac OS X 10.8.3(
bash
version:
GNU bash,version 3.2.48(1)-发行版(x86_64-apple-darwin12)
)上测试。

您是否尝试过在谷歌上搜索
printf()的可能转换说明符?似乎不是这样。+1不知道
修饰符。很酷@Jaypal:支持GNUC库中的
修饰符,显然还有MacOSX(BSD);它不在标准C或POSIX C中。请耐心等待,您会学到这些东西-我是在上个月左右才发现的。我可以将%'d\n和%s\n组合成一个命令吗?如果您想:
printf“这是一个数字:%'d;这是一个字符串“%s”\n“3141593 aleph
。你到底在问什么,为什么不试试,和/或试着读一下手册?@JonathanLeffler:
在Posix中,请看这里:。它被标记为
CX
,这意味着它是标准C的扩展,但是“[a]应用程序开发人员可以使用扩展,因为它在所有符合POSIX.1-2008标准的系统上都受支持”。