Sie sitzen so vor Ihrem Computer und überlegen sich, ob nicht einer Ihrer Bekannten auch gerade am Rechner sitzt. Zum Aufstehen und Herumschauen sind Sie aber zu müde - schließlich haben Sie gerade das letzte Übungsblatt bearbeitet. Also denken Sie mal scharf nach, ob das nicht auch ohne Anstrengung geht. Da fallen Ihnen das Kommando who, mit dem man herausfinden kann, wer alles an diesem Computer arbeitet, und das Kommando egrep ein und Sie tippen eine Kommandozeile ein, mit der Sie herausfinden, ob Ihr Freund mit dem Login joe auch gerade am Rechner sitzt. Was haben Sie eingetippt? (Hinweis: Verwenden Sie eine Pipeline.)
Sie kennen sicher das Problem, dass Sie zwar die Geburtstage ihrer Freunde und Bekannten zwar irgendwo notiert haben und trotzdem immer wieder einen Geburtstag vergessen. Das ist wirklich ärgerlich! Weil Sie im Rahmen dieser Vorlesung mit dem vi arbeiten sollen, haben Sie als Übung die Geburtsdaten Ihrer Freunde in eine Datei geburtstag.db (im Verzeichnis /www/thales/ftp/pub/vorlesungen/ws00/prog/6) geschrieben. Jede Zeile dieser Datei ist wie folgt aufgebaut:
<Name>:<Geburtsdatum>
[d]d.[m]m.[yy]yy
(z.B. 7.07.77
,
03.3.1978
, etc.) in die Datei eingetragen haben und dass
Tag und Monat nicht immer mit 2 Stellen bzw. Jahr nicht immer mit
4 Stellen eingetragen ist. Korrigieren Sie zunächst die
Anzahl der Stellen von Tag und Monat auf 2 und von Jahr auf 4.
Ändern Sie danach das Datumsformat in mm-dd-yyyy
.
Führen Sie die Änderungen mit dem vi unter Verwendung
von regulären Ausdrücken durch. (4 Punkte)
dd
= Tag, mm
= Monat und yyyy
= Jahr;
[x]x
entspricht einer Angabe von ein oder zwei Stellen,
xx
von genau zwei Stellen etc.)
<Name>:<Geburtsdatum>
wird <Geburtsdatum>:<Name>
,
sowohl mit dem vi unter Verwendung eines regulären
Ausdrucks als auch auf der Kommandozeile (mittels sed).
(2 Punkte)
Vielleicht waren Sie ja auch betroffen. Haben Sie vor zwei Wochen versucht sich bei turing einzuloggen und es hat nicht funktioniert? Tja, wie Murphy so will, haben zwei Studenten unabhängig voneinander an demselben Tag riesige Log-Dateien produziert und somit den gesamten (für die Homeverzeichnisse auf turing) verfügbaren Plattenplatz verbraucht. Aber wie soll man nun herausfinden, wo sehr viel Plattenplatz verbraucht wird? (Hinweis: Sie dürfen davon ausgehen, dass ganze Zahlen keine führenden Nullen besitzen.)
du <Verzeichnis>
kann man den
Speicherverbrauch eines Verzeichnisses (samt Unterverzeichnissen)
bestimmen. Ermitteln Sie durch eine Kommandozeile alle
Unterverzeichnisse Ihres Homeverzeichnisses ~
,
die mindestens 1000 Kilobytes an Plattenplatz verbrauchen.
Verwenden Sie zur Anzeige das Kommando less. (2 Punkte)
Viel Erfolg!
P.S.: Denken Sie daran, dass sie zu fast allen Kommandos via
man <Kommando>
eine Anleitung bekommen können.