Universität Ulm -Abteilung Angewandte Informationsverarbeitung
4.Übungsblatt (25.05.00 bis 08.06.00)
zur Vorlesung Allgemeine Informatik II (SS 00)
Peitsche
Grep?
Aufgabe 1 (20 Punkte)
Schreiben Sie einen Teil der Funktionalität des geliebten Unix-Tools
grep
in Oberon nach, den ogrep. Er soll die folgenden Optionen verstehen:
ogrep [-lvn] muster [file ...]
-
ogrep muster file1 file2 soll jede Zeile der Dateien file1
und file2 ausgeben, in denen der String "muster" vorkommt.
"muster" darf kein regulärer Ausdruck sein, sondern nur ein
einfacher String. Die Anzahl der übergebenen Dateien darf "beliebig"
groß sein - also auch mehr als nur ein oder zwei Dateien. Wird keine
Datei als Argument übergeben, so soll ogrep von der Standardeingabe
lesen.
-
ogrep -n muster file gibt die gefundenen Zeilen samt Zeilennummer
aus.
-
ogrep -v muster file gibt alle Zeilen aus, in denen das Muster
nicht
gefunden wurde.
-
ogrep -l muster file1 file2 gibt nur den Namen der Datei
aus, in der das Muster mindestens in einer Zeile vorkommt und nicht
die Zeile selbst.
Kombinationen von Optionen:
-
ogrep -nv muster file gibt alle Zeilen der Datei file
samt Zeilennnumer aus, in denen das Muster nicht vorkommt.
-
ogrep -v -l muster * gibt die Namen aller Dateien im aktuellen
Directory aus, in denen das Muster nicht vorkommt.
-
ogrep -nl muster file1 file2 - hier wird die Option -n
ignoriert, da sie keinen Sinn macht.
Sie können sich im Zweifelsfall am Verhalten des Unix-Tools grep
orientieren! Sollte eine Datei nicht geöffnet werden können,
so gibt ogrep eine diesbezügliche Fehlermeldung auf Standarderror
aus.