使用awk和sprintf如何在小数点之前和之后填充零点
输入
11
12.2
9.6
输出
110
122
096
我可以使用这些,但不能同时使用
sprintf("%。1f",$ 1)
输出
110
122
96
sprintf("%03d",$ 1)
输出
011
012
096
答案 0 :(得分:2)
x = sprintf("%06.3f", 1.23)
输出:
$ awk 'BEGIN{x = sprintf("%06.3f", 1.23); print x}'
01.230
$
答案 1 :(得分:1)
我真的不能从你的问题中说出来,但也许其中一个可以做你想要的任何事情:
$ cat file
11
12.2
9.6
$ awk '{ x=sprintf("%03d",$0*10); print x }' file
110
122
096
$ awk '{ x=sprintf("%04.1f",$0); print x }' file
11.0
12.2
09.6
显然,您可以使用printf
而没有中间变量但是您要求sprintf()
。