awk

27 März
Termin: 10 April (15 April)

Die folgende Aufgaben sollen mit der Hilfe von Shell Scripts gelöst werden, die awk-Scripts benützen.

  1. Seien drei Parameter in der Kommandozeile gegeben: ein Dateiname, ein Wort und eine Zahl (n). Zeigen Sie am Bildschirm die Zeilen der gegebenen Datei an, die das gegebene Wort, und wenigstens n Wörter enthalten.


  2. Zeigen Sie am Bildschirm die Prozeße an, die mehr als 2% der CPU Zeit benützen. Die Prozeße sollen nach der benützten Zeitdauer in umgekehrter Reihenfolge angezeigt werden. Am Ende soll auch die gesamte Zeitdauer in Sekunden ausgedruckt werden.


  3. Zeigen Sie die erste 10 Längste Dateien von einem Verzeichnis und dessen Unterverzeichnisse in umgekehrten Reihenfolge nach den Längen an.


  4. Sei die Datei namens Student.lst gegeben, die eine Liste von Studenten enthaltet. Sie hat das folgende Format:
    Nachname Vorname Benutzername Gruppe
    (die Spalten sind mit Leerzeichen getrennt. Wenn jemand mehrere Vornamen hat, sind diese mit "-" zusammengebunden, Bsp.: Schneider Manuel-Georg sm70231 721). Für jeden Student der sich in der, als erster Parameter gegebenen Gruppe befindet, soll den Text der, als zweiter Parameter gegebenen Datei via E-Mail geschickt werden.


  5. Von einem, als Parameter gegebenen Verzeichnis (und dessen Unterverzeichnisse) zeigen Sie jede Datei an, die einen anderen Besitzer hat als das Verzeichnis, wo sie sich befindet.


  6. Von den, als Parameter gegebenen Dateien zeigen Sie nur die Zeilen an, die das gleiche Wort zweimal nacheinander enthalten. Für jede Datei, die bearbeitet werden soll, wird (vor der Bearbeitung) der Dateiname ausgegeben, und auch die Zeilennummer der ausgegebenen Zeile.


  7. Sei eine Datei, die Benutzernamen enthaltet, gegeben. Ihr Format ist:
    Familienname Vormname Benutzername Jahr Monat Tag
    wo "Jahr Monat Tag" das Geburtstagsdatum des entsprecenden Benutzers ist. Für jeden Benutzer soll an seinem Geburtstag eine E-Mail mit dem Text:
    >Herzlichen Glückwunsch zum Geburtstag, Vorname Familienname!


  8. Sei eine Datei mit dem Ergebnis einer Prüfung gegeben. Ihr Format ist:
    Familienname Vorname Benutzername Note1 Note2 ... Note_n
    (Die Anzahl der Noten ist gleich für jeden Benutzer). Erstellen Sie eine Datei mit dem Format:
    Familienname Vorname Benutzername Mittelwert
    wo Mittelwert das arithmetische Mittel der Noten ist.


  9. Sei eine Datei mit dem Format der Ausgabedatei der Aufgabe 8 gegeben. Schicken Sie für jeden Teilnehmer der Prüfung eine E-Mail mit dem Text:
    Liebe Vorname Familienname!
    Auf die Lehrfach Prüfung haben Sie Mittelwert Note bekommen.
    wo das Lehrfach in der Kommandozeile als Parameter gegeben ist, alle andere Informationen befinden sich in der Eingabedatei.


  10. Für die, als Parameter gegebenen Dateien, zeigen Sie die maximale Anzahl der nacheinander folgenden gleichen Zeilen, diese Zeile und den Dateinamen, in welche diese Zeile ist, am Bildschirm an.


  11. Für jede Datei mit Erweiterung .c, .cc oder .h von dem, als Parameter gegebenen Verzeichnis und dessen Unterverzeichnisse, zeigen Sie am Bildschirm die durchschittliche Anzahl der Wörter von einer Zeile an, und am Ende berechnen Sie einen allgemeinen Mittelwert für alle Dateien.


  12. Bestimmen Sie den Mittelwert der Briefkasten-Grösse (INBOX) des Benutzers. (der Brifkasten (INBOX) des Benutzers befindet sich im Verzeichnis /var/spool/mail).

Dokumentation: