2010-11-25 12 views
3

Ich möchte eine Folge von Nummer wie diese bekommen 01,02, .., 30 Aber wenn ich {01..30} verwende, werde ich 1,2, .. 30 bekommen , die Null vor der einstelligen Zahl fehlt. Wie kann ich das Format wie 01,02..30 bekommen? Vielen Dank im VorausLinux Variable Expansion Problem?

Antwort

3

In Bash4, Ihre {01..30} Klammer Erweiterung tatsächlich funktioniert, wie Sie es möchten. Wenn Sie auf Bash3 oder niedriger sind, können Sie das printf Built-in zusammen mit der Klammer-Erweiterung verwenden, um zu erhalten, was Sie wollen, ohne auf externe Befehle zurückgreifen zu müssen.

$ printf "%02d " {1..20} 
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 
+0

immer besser zu verwenden, wenn verfügbar. kannte Bash4 nicht, danke! –

1

seq -w 1 30 # ought to work 

wie in:


for number in $(seq -w 1 30); do 
touch /tmp/bleah$number.dat 
done