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?
3
A
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
1
seq -w 1 30 # ought to work
comme dans:
for number in $(seq -w 1 30); do
touch /tmp/bleah$number.dat
done
toujours mieux d'utiliser des built-ins si disponibles. Je ne connaissais pas Bash4, merci! –