PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shell: Eingabe auf drei Variablen aufteilen



CaptainAlphabet
15-09-2004, 14:41
Wisst ihr, wie sich ein Datum der Form YYYY-MM-DD auf die Variablen Year, Month und Day aufteilen lässt? Nehmen wir mal an, das Datum sei Parameter eines Shell Scripts; wie müsste dann das Muster, nach dem grep suchen soll, aussehen?

Year=$( grep [MUSTER] $1 )
Month=$( grep [MUSTER] $1 )
Day=$( grep [MUSTER] $1 )

Oder gibt es auch die Möglichkeit, zu sagen, Zeichen 1 bis 4 sollen $Year, Zeichen 6 und 7 $Month und 9 und 10 $Day zugeordnet werden?

andreas.prause
15-09-2004, 16:13
Es gibt mehrere Möglichkeiten, z.B. mit der bash
(Voraussetzung, $1 enthält das Datum als YYYY-MM-TT):
1.
TAG=${1:8} substring: alles von $1 ab der 8. Stelle
oder TAG=${1##*-} entferne alles (*) bis einschließlich - von vorn
MONAT=${1:5:2} substring: ab der 5. Stelle 2 Zeichen
JAHR=${1:0:4} oder JAHR=${1%%-*}
2. (find ich einfach geil, setzt alles in einem Rutsch)
IFS=- read JAHR MONAT TAG <<<"$1"
3. man bash bringt sicher noch weitere Möglichkeiten ;-)

MfG AP

CaptainAlphabet
15-09-2004, 17:45
So einfach geht das also. Danke dir! :)