Universität Ulm - Abteilung Angewandte Informationsverarbeitung
Das Programm date gibt die aktuelle Uhrzeit und das Datum aus.
Dabei holt es sich die Zeitzone aus der Umgebungsvariablen TZ.
Die Zeitzone wird durch ein Kürzel angegeben, das aus ein bis drei
Großbuchstaben besteht (CET, MET, GMT, ...). Wenn keine Zeitzone
angegeben wurde, dann wird GMT verwendet.
In diesem Blatt soll ein Programm geschrieben werden, das feststellt,
welche Buchstabenfolgen aus bis zu drei Großbuchstaben von date
als Bezeichnung für eine Zeitzone erkannt werden.
Schreibt dazu zunächst ein Programm, das das Kommando date nacheinander für jede mögliche Zeitzone aufruft. Die Ausgabe aller Aufrufe von date soll in die Datei timezones1 geschrieben werden. Damit später klar ist, welche Zeitzone angegeben wurde, soll diese Information jeweils vor der Ausgabe von date in die Datei geschrieben werden. Der Anfang der Ausgabedatei könnte also etwa so aussehen (kleinere Unterschiede in der Ausgabe von date sind je nach Betriebssystem und Version möglich):
TZ=A Fri May 7 11:49:30 GMT 2004 TZ=AA Fri May 7 11:49:30 GMT 2004 TZ=AAA Fri May 7 11:49:30 GMT 2004 TZ=AAB Fri May 7 11:49:30 GMT 2004 TZ=AAC Fri May 7 11:49:30 GMT 2004 TZ=AAD Fri May 7 11:49:30 GMT 2004 TZ=AAE Fri May 7 11:49:30 GMT 2004 TZ=AAF Fri May 7 11:49:30 GMT 2004 TZ=AAG Fri May 7 11:49:30 GMT 2004 TZ=AAH Fri May 7 11:49:30 GMT 2004
In einem zweiten Schritt sollen alle diejenigen Zeilen aus der Datei timezones1 in die Datei timezones geschrieben werden, die nicht (grep Option -v) auf einen bestimmten regulären Ausdruck passen, den der Benutzer als Kommandozeilenargument angeben kann. Dazu soll Ihr Programm das Kommando grep mit geeigneten Parametern aufrufen. (Wenn der reguläre Ausdruck passend gewählt wird, dann kann er dazu verwendet werden, um alle diejenigen Zeilen auszublenden, bei denen GMT als Zeitzone verwendet wurde. Die verbleibenden Zeilen sind dann diejenigen, bei denen date das Kürzel als Zeitzone erkannt hat.)
Viel Erfolg!