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.
© 1999 - 2024 | Das Debian GNU/Linux Anwenderhandbuch von Frank Ronneburg steht unter einer Creative Commons Namensnennung-Nicht Kommerziell-Keine Bearbeitung 3.0 Deutschland Lizenz.