Universität Ulm - Abteilung Angewandte Informationsverarbeitung

 


3. Übungsblatt zur Vorlesung Systemnahe Software II


Abgabetermin: Montag, 17.05.2004


Environment, Argumente, Exec    (10 Punkte)



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!



Hans Braxmeier