Springe zum Hauptinhalt

Archiv
next up previous contents
Next: Filenamengenerierung Up: Bourne-Shell als Kommando- und Previous: Standard- E/A und Fileumlenkung

Pipelineverarbeitung

  • Eine Pipeline (pipe) entsteht, wenn die Standardausgabe eines Programmes mit der Standardeingabe eines anderen Programmes verknüpft wird:


    ...cmdi $\vert$ cmdi+1 ...


    allgemein:


    cmd1 $\vert$ cmd2 $\vert$ ... $\vert$ cmdn

  • Pipelines kann man sich vorstellen als einen Datenstrom, der durch verschiedene Programme (Filter) hindurchläuft.
    • Beispiel:
      $ who | wc -l
      $ ls | wc -l
      $ ls -l | grep  '^[Dd]'
      $ ls | pr -3 | lpr
      
    • Bemerkungen:
      • wc, grep,pr sind Filter
      • ls ist kein Filter $\Rightarrow$ nur als erstes Element einer Pipeline möglich
      • falls Ausgabe sowohl auf stdout als auch in ein File geschrieben werden soll: tee (T-Verbindung)
    • Vergleich zur Methode der Fileumlenkung:
      $ ls >tmpfile; wc -l <tmpfile; rm tmpfile
      
      liefert (fast) das gleiche Ergebnis wie
      $ ls | wc -l
      
      aber:
      • Pipeline-Methode ist einfacher und bequemer
      • tmpfile wird durch Shell vor Aufruf von ls erzeugt $\Rightarrow$ ein File mehr im aktuellen Verzeichnis (evtl. Problem: Berechtigung, Files im akt. Verzeichnis zu erzeugen!)
      • ls und wc werden synchron von der Shell gestartet, die zu einer Pipeline gehörenden Programme werden parallel abgearbeitet, die Datenübergabe erfolgt über interne Puffer (evtl. warten)
  • Pipelines sind eine Grundlage für das Tool-Konzept im UNIX:
    • kleine, überschaubare Programme für einen bestimmten Zweck; komplexere Aufgaben können leicht durch Kombination der Programme gelöst werden
    • Beispiel:
      • anstelle ls mit spezieller Option ,,Anzahl der Files`` und who mit der Option ,,Anzahl der Nutzer`` können beide Programme mit wc kombiniert werden
      • dto. bzgl. Mehrspaltendruck usw.
  • Bemerkungen:
    • Programme merken nicht, daß sie Bestandteil einer Pipeline sind
    • Sie müssen (bis auf das erste) von der Standardeingabe lesen und auf die Standardausgabe (bis auf das letzte) ausgeben
    • Konvention: Lesen der Standardeingabe, falls bei Aufruf kein Filename-Argument angegeben wird (z.B. sort, grep, wc)
    • (fast) nie bedeutet die Angabe eines Filename-Argument das Ausgabefile des Programmes ! (Ausnahme: tee)
    • Forderung an Filter:
      • Trennung ,,normale`` Ausgabe von Fehlernachrichtenausgabe
      • Keine Überschriftenausgabe und dergleichen in das Programm ,,verdrahten``

next up previous contents
Next: Filenamengenerierung Up: Bourne-Shell als Kommando- und Previous: Standard- E/A und Fileumlenkung
  • Porträt eines Mannes

    Studieren trotz Vollzeitjob

    Max Chris Schreiber hat nach seinem VWA-Abschluss erfolgreich ein berufsbegleitendes Bachelorstudium „Public Sector Management“ an der TU Chemnitz gemeistert und damit seinen Blick auf den öffentlichen Sektor erweitert …

  • Eine blonde Frau hält zwei beschriftete Aufkleber hoch.

    TU Chemnitz feiert erneut Vielfalt beim Christopher Street Day

    Let’s celebrate #TUCgether: TU Chemnitz nimmt am 4. Juli 2026 mit einem Wagen am Christopher Street Day in Chemnitz teil und zeigt die Vielfalt der TUC-Familie – Alle sind herzlich eingeladen, sich zu beteiligen …

  • Eine Schülerin im weißen Kittel experimentiert mit einem Reagenzglas im Labor.

    Junge Chemietalente auf der Suche nach der Substanz X

    55. Ausgabe des Chemie-Wettbewerbs „Julius Adolph Stöckhardt“ fand an der TU Chemnitz statt – Toni Radecker vom Clemens-Winkler-Gymnasium Aue belegte Platz 1 und verteidigte damit seinen Titel aus dem Vorjahr …

  • Ein Mann steht vor einem Gebäude.

    „Die Sprachbarriere verschwindet schneller, als man denkt“

    Piotr Marsza?ek aus Katowice hat über die „Betreuungsinitiative Deutsche Auslands- und Partnerschulen“ des Deutschen Akademischen Austauschdienstes den Weg an die TU Chemnitz gefunden …