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
  • Ki generiertes Bild

    Offen für Argumente geht in die zweite Runde

    Online-Debattenformat der Juniorprofessur Soziologie der TU Chemnitz thematisiert am 10. September 2025 die Rolle der Solarenergie im Zuge der Energiewende …

  • Gruppe vieler Menschen

    Let's run #TUCgether!

    Zum Jubiläum des Chemnitzer Firmenlaufs gingen 266 Laufbegeisterte für die TU Chemnitz an den Start …

  • Menschen stehen vor einer Leinwand

    Erfolgreiche Summer School an der TU Chemnitz

    Professur Medienpsychologie und die Hochschulallianz Across begrüßten zur Summer School „How much science is in science fiction?“ medienbegeisterte Nachwuchswissenschaftlerinnen und -wissenschaftler aus neun verschiedenen Ländern …

  • Menschen stehen vor einem Haus

    Als Azubi an die Uni? Ja, klar!

    Kanzler der TU Chemnitz begrüßte neue Auszubildende und gratulierte Absolventinnen und Absolventen zum erfolgreichen Berufsabschluss – TU Chemnitz bildet aktuell in zehn Berufen aus …