长话短说: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
它纯粹是为数字添加零而不是替换它们的数字。
如果我无意中打开某些设置,做错了什么或有错误,有人可以告诉我吗?
答案 0 :(得分:2)
您需要一个空格,否则会发生连接:
printf "x%010d" $i;
^