Falscher Kopf mit Umlenkung

8

In einer Antwort auf Piping eine Datei durch Tail und Kopf über Tee , war ein seltsames Verhalten von head gewesen im folgenden Konstrukt bei der Arbeit mit riesigen Dateien beobachtet:

%Vor%

Ausgabe:

%Vor%

Frage:

Warum gibt die letzte Zeile nicht die gleichen Zeilen wie die vorherigen zwei Zeilen aus?

    
choroba 21.05.2013, 07:17
quelle

1 Antwort

8

Dies liegt daran, dass head beendet wird, sobald drei erste Zeilen übertragen werden. Anschließend wird tee mit SIGPIPE gelöscht, weil das Leseende der "FILE" -Pipe, in die geschrieben wird, geschlossen wird, aber erst, wenn es gelingt, einige Zeilen auf seine Stdout auszugeben.

Wenn Sie genau das ausführen:

%Vor%

Sie werden sehen, was besser passiert.

OTOH, tac liest die ganze Datei, da sie umgekehrt werden muss, ebenso wie sed , wahrscheinlich um konsistent zu sein.

    
spbnick 21.05.2013, 08:49
quelle

Tags und Links