Ich brauch ein Unix Shell-Script dem ich einen Parameter
der Form yyyymmdd (Datum) mitgeben muß, und diesen auf gültig
prüfe.
Bitte gebt mir einen Hinweis mit welchen Kommandos ich das
am besten lösen kann.
eine einfache Möglichkeit ist die Verwendung des UNIX Befehls egrep, der reguläre Ausdrücke prüft.
Für ein (t)csh kann man das z.B. so machen:
1. Parameter des Skripts ist das Datum in YYYYMMDD Format
if (echo "$1" | egrep -c '^[12][0-9]{3}(0[1-9]|10|11|12)(0[1-9]|[1-2][0-9]|30|31)$'
!= 0) then
echo „ist OK“
else
echo „ist nicht OK“
endif
Der Suchstring bedeutet:
^ Anfang des Strings
[12][0-9]{3}: Jahr beginnt mit 1 oder 2 und dann noch drei Ziffern
(0[1-9]|10|11|12): Monat 01-12
(0[1-9]|[1-2][0-9]|30|31): Tag 01-31
$ Ende des Strings
Diese Methode ignoriert leider Schaltjahre und die Monate, die keine 31 Tage haben. Letzteres könnte man mit einem längeren Suchstring noch abhandeln.
Ich hoffe, das hilft etwas.