printf%d正在添加而不是替换填充的零

时间:2013-01-15 23:11:32

标签: bash ubuntu printf padding zero

长话短说:printf正在为数字添加零而不是用数字替换它们。

更多详情:

我目前正在尝试在我的Ubuntu操作系统上使用Bash来执行一系列分解文件 包含我的数据库的查询。

文件被分解为如下所示:

x0000000000
x0000000001
x0000000002
etc.

我正在制作一个小脚本,它将使用Bash的printf的填充零功能来运行这些文件。

我的脚本看起来就像我所见过的每一个,但结果却不同。

这是我的脚本:(不是查询的那个,而是获取文件名的那个)

for i in {0..10};
do
printf "x%010d"$i;
done

应该出现这样的事情:

x0000000000
x0000000001
x0000000002
x0000000003
x0000000004
x0000000005
x0000000006
x0000000007
x0000000008
x0000000009
x0000000010

但是反过来就是这样:

x00000000000
x00000000001
x00000000002
x00000000003
x00000000004
x00000000005
x00000000006
x00000000007
x00000000008
x00000000009
x000000000010

它纯粹是为数字添加零而不是替换它们的数字。

如果我无意中打开某些设置,做错了什么或有错误,有人可以告诉我吗?

1 个答案:

答案 0 :(得分:2)

您需要一个空格,否则会发生连接:

printf "x%010d" $i;
               ^