

In dem vorherigen Beispiel tritt wieder der Fall auf, daß mit Zwischendateien gearbeitet wird, die man hinterher noch manuell löschen muß.
Die Kommandozeile bietet hier die Lösung, mehrere Programme hintereinander aufzurufen, indem man die einzelnen Aufrufe durch ein Semikolon voneinander trennt. Im Gegensatz zur Verwendung der “Pipe” werden dadurch die Ausgaben nicht von einem Programm zum nächsten weitergegeben, sondern das jeweils nächste Programm fügt seine Ausgaben denjenigen seiner Vorgänger hinzu.
Dies ist genau der Effekt, den wir brauchen: Zuerst wird mit head die Überschrift von planeten2.txt ausgegeben und anschließend der sortierte Teil der Planeten-Liste hinzugefügt.
Übungsaufgabe 2.29.1
Probiert das Beispiel auf der Folie aus.
Übungsaufgabe 2.29.2
Schaut Euch das Ergebnis an, wenn man die folgende Eingabeumleitung versucht:
> head -2 planeten2.txt; tail -n +3 planeten2.txt | sort > neu.txt
Das hat nicht den gewünschten Erfolg, weil nur die Ausgabe des rechts vom Semikolon stehenden Programms umgeleitet wird.
Übungsaufgabe 2.29.3
Die Lösung für das Problem in Aufgabe 2.28.3 besteht ähnlich wie in der Mathematik durch eine explizite Klammerung. Wenn man den gesamten Aufruf in runde Klammern einschließt und das Ergebnis des Klammerausdrucks umleitet, erhält man die gewünschte Ausgabe:
(head -2 planeten2.txt; tail -n +3 planeten2.txt | sort) >foo
Probiert es aus!