2013-01-15 43 views
0

長話短說:printf正在向數字中添加零,而不是用數字替換它們。printf%d正在添加而不是替換填充的零

更多細節:

我目前正在嘗試使用猛砸在我的Ubuntu操作系統執行一系列包含我的數據庫查詢分解文件 的。

中的文件被打散了的樣子如下:

x0000000000 
x0000000001 
x0000000002 
etc. 

我正在一個小腳本,將通過使用bash的printf的填零功能運行這些文件。

我的腳本看起來像我已經Google和看過的每一個人,但結果是不同的。

這裏是我的腳本:(不是一個用於查詢,但一拿到文件名)

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

加只是一個空間:printf的 「X%010d」 $ I; – jap1968

+0

也謝謝你,我首先看到了另一篇文章。 – komodor64

回答

2

你需要一個空間,否則將發生串聯:

printf "x%010d" $i; 
      ^
+0

謝謝,非常感謝,這已經讓我感動了好幾個小時。 – komodor64

相關問題