Aus Raspberry Pi Geek 03/2014

Ein-/Ausgabeumleitung (Seite 3)

$ ls /etc | less

Die Ausgabe von Ls erscheint nun nicht mehr im Terminal, sondern direkt im Pager Less, der sie seitenweise anzeigt und so das bequeme Auf- und Abblättern ermöglicht. Besonders häufig kommt die Pipe auch zum Einsatz, um eine bestimmte Ausgabe mit Grep zusammen nach Zeichenketten zu durchsuchen, zum Beispiel:

$ find debian -name "*.png" | grep --color apt

Dieses Kommando fahndet im Ordner debian zunächst nach allen Dateien, die auf .png enden, und leitet die Ausgabe direkt an Grep weiter. Das sucht nach der Zeichenkette apt und färbt die Treffer dank der Option --color Rot ein (Abbildung 1).

Abbildung 1: Die Ausgabe des Find-Kommandos wandert ohne Umwege über die Shell an das Tool Grep.

Abbildung 1: Die Ausgabe des Find-Kommandos wandert ohne Umwege über die Shell an das Tool Grep.

Auch dem Einsatz mehrerer Pipes steht nichts entgegen. Der folgende Befehl listet den Inhalt Ihres Home-Verzeichnisses einzeilig auf, leitet das Ergebnis wieder an das Programm Grep weiter, sucht nach der Zeichenkette .jpg, und zählt anschließend die Treffer:

$ ls -1 ~ | grep .jpg | wc -l
12

So finden Sie also ohne langes Suchen heraus, dass sich zwölf JPG-Dateien direkt im Home-Verzeichnis befinden.

Zeit für Tee?

Zwischen die einzelnen Pipe-Stücke bauen Sie mit dem Programm tee einen Abzweig ein. Das Kommando erwartet Daten aus der Standardeingabe und schreibt sie sowohl in eine Datei als auch auf den Bildschirm. Ein solches T-Stück darf ganz am Ende oder zwischen den einzelnen Befehlen stehen:

$ Befehl1 | tee ausgabe.txt | Befehl2

Um beispielsweise ausgehend vom aktuellen Verzeichnis nach PNG-Dateien zu suchen und diese Ausgabe sowohl in der Datei bilder.txt zu protokollieren als auch anzuzeigen und mit Grep nach der Zeichenkette buch zu durchstöbern, tippen Sie:

$ find . -name "*.png" | tee bilder.txt | grep buch

Standardmäßig überschreibt Tee die angegebene Zieldatei, falls diese bereits existiert. Um Ausgaben an ein bereits vorhandenes Protokoll anzuhängen, steht der Aufrufparameter -a bereit:

$ find . -name "*.png" | tee -a bilder.txt | grep buch

Die verschiedenen Operatoren sowie die Pipe und der Befehl Tee ermöglichen also ein sehr flexibles Kombinieren von Shell-Kommandos. Für eine schnelle Suche beispielsweise lohnt sich daher meist nicht der Aufwand, ein komplettes Skript zu schreiben. Bei regelmäßigem Einsatz fließen Ihnen die Kombinationen ohnehin wie selbstverständlich aus den Fingern. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben