3.16 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ässt sich aber mit 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. An dieser Stelle gibt es aber einen kleinen Haken: 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 Rechenarbeit 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.

 Impressum