2010-11-25 19 views
3

Je voudrais obtenir une séquence de nombre comme ceci 01,02, .., 30 Mais si j'utilise {01..30}, j'obtiendrai 1,2, .. 30 , le zéro avant le nombre à un chiffre est manquant. Comment puis-je obtenir le format comme 01,02.30? Merci à l'avanceProblème d'expansion de variable Linux?

Répondre

3

En Bash4, votre {01..30} expansion des accolades fonctionne réellement comme vous le souhaitez. Si vous êtes sur Bash3 ou inférieur, vous pouvez utiliser le printf intégré avec l'expansion de l'accolade pour obtenir ce que vous voulez sans avoir recours à des commandes externes.

$ 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

toujours mieux d'utiliser des built-ins si disponibles. Je ne connaissais pas Bash4, merci! –

1

seq -w 1 30 # ought to work 

comme dans:


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