2012-11-14 10 views
15

Wie führende NULL zu bash Bereich hinzufügen?
Zum Beispiel brauche ich Zyklus 01,02,03, .., 29,30
Wie kann ich dies mit bash implementieren?Bereich mit führender Null in Bash

+0

mögliche Duplikate von [Zero Padding In Bash] (http://stackoverflow.com/ Fragen/8789729/zero-padding-in-bash) –

Antwort

16

andere seq Trick funktioniert:

seq -w 30 

, wenn Sie die man-Seite überprüfen, werden Sie die Option -w ist genau das für Ihre Anforderung finden Sie unter:

-w, --equal-width 
       equalize width by padding with leading zeroes 
2

Dies funktioniert:

printf " %02d" $(seq 1 30) 
5

Sie Formatoption f des verwenden können:

seq -f "%02g" 30 
3

Eine "reine bash" Art und Weise so etwas wie dieses würde:

echo {0..2}{0..9} 

Dies gibt Sie die folgenden:

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 

Entfernen der ersten 00 und Hinzufügen der letzten 30 ist nicht zu schwer!

15

In den letzten Versionen von bash können Sie tun:

echo {01..30} 

Ausgang:

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 

Oder wenn es durch Komma getrennt sein sollte:

echo {01..30} | tr ' ' ',' 

, die auch mit erreicht werden kann parameter expansion:

a=$(echo {01..30}) 
echo ${a// /,} 

Ausgang:

01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 
Verwandte Themen