Pipes

Bereits sehr früh wurde das Prinzip der „Pipes“, Röhren ist keine schlechte Übersetzung, integriert. Sie können etwas „hineinschieben“ und am anderen Ende kommt es wieder heraus. Wie bereits beschrieben, gibt es sehr viele kleine, spezialisierte Programme unter Unix, die mit speziellen Parametern aufgerufen werden können. Sinnvoll wäre eine Schnittstelle zwischen diesen Programmen, um Daten auszutauschen oder auch das Ergebnis eines Programmlaufs in einem weiteren Programm aufzubereiten. Diese Schnittstelle ist in Form von „Pipes“ realisiert. Sicher haben Sie schon das Kommando ls benutzt, um sich die Dateien in einem Verzeichnis anzeigen zu lassen. Wenn Sie aber in einem Verzeichnis mit sehr vielen Dateien die Anzahl der Dateien ermitteln möchten, kann das Zählen leicht etwas umständlich werden. Um Zeichen, Wörter oder Zeilen in einer Datei zu zählen, gibt es aber das Kommando wc (Word Count). Ein Weg wäre also, die Ausgabe von ls -l in eine Datei zu schreiben und mittels wc -l die Zeilen zählen zu lassen. Der Umweg über eine Datei läßt sich aber mittels einer Pipe umgehen.

Unix benutzt hierfür das Zeichen | (Pipe). Verknüpfen Sie einfach die beiden Kommandos mittels dieses Zeichens zu einer Zeile: ls -l | wc -l, gibt Ihnen die Anzahl der Dateien im aktuellen Verzeichnis aus. Nur ein kleiner Haken an dieser Stelle: ls gibt als erste Zeile keinen Dateinamen aus, sondern eine Zeile, in der Informationen über das Verzeichnis aufgezeigt werden, Sie müssen also vom Ergebnis eine Zeile subtrahieren, um auf das genaue Ergebnis zu kommen.

Wenn Sie sich die Rechnenarbeit ersparen wollen, können Sie auch die Option -1 statt -l beim Kommando ls benutzen, doch das führt jetzt zu weit...

Ein weiteres Beispiel für die Benutzung von Pipes werden wir im folgenden Abschnitt zu ps aufzeigen. Sie werden im Laufe der Zeit an vielen Stellen auf weitere Anwendungsfälle stoßen.