Eine sog. "Pipe" (übersetzt: Rohr, Röhre) wird verwendet, um die StandardAusgabe eine Programms mit der StandardEingabe eines anderen Programms zu verbinden.

Beispiel

cat liste.txt | sort | uniq

leitet Ausgabe von cat in die Eingabe von sort, die Ausgabe von sort in die Eingabe von uniq.

Um die Ausgabe zu vervielfachen, d.h. einmal zusätzlich in eine Datei zu schreiben, gibt es das Programm tee.

cat liste.txt | sort | uniq | tee liste.srt | wc -l

Hier wird die Ausgabe von uniq einmal in die Datei liste.srt geschrieben und gleichzeitig nach wc geleitet, wo die Zeilen gezählt werden.

Will man nicht nur die Standardausgabe des Programms sondern auch die Fehlerausgabe in einer Pipe verarbeiten hilft folgendes:

strace xpdf 2>&1| grep  "/etc"

Hier startet man ein Programm mit strace und will sehen ob es eine Konfigurations Datei in /etc geben könnte die das Programm einliest.

Nur die Error Ausgabe mit

(strace echo "hello hello" >/dev/null) 2>&1|less

Die Sachen mit der Pipe geht das einfacher ist das richtig?

Pipe (zuletzt geändert am 2007-12-23 22:45:14 durch localhost)