awk和sprintf为零填充

时间:2014-07-31 19:15:43

标签: awk printf

使用awk和sprintf如何在小数点之前和之后填充零点

输入

11
12.2
9.6

输出

110
122
096

我可以使用这些,但不能同时使用

sprintf("%。1f",$ 1)

输出

110
122
96

sprintf("%03d",$ 1)

输出

011
012
096

2 个答案:

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