On Mon, 09 Jul 2001, Gerhard Feiner wrote:
On Monday 09 July 2001 22:26, you wrote:
auch richtig, is aber reine gewohnheits-sache, und ein jaemmerlicher cat-prozess macht nem heutigen system nix aus =) ich arbeite ja net an nem 386er, hehe
Du verwendest nur ein falsches Beispiel... $ find /usr/src/linux/ -type f > /tmp/linuxfiles $ wc -l /tmp/linuxfiles 9350 /tmp/linuxfiles $ time for f in `cat linuxfiles`; do cat "$f" | egrep -q -e 'fuck' -; done real 2m20.540s user 0m55.850s sys 1m3.420s $ time for f in `cat linuxfiles`; do egrep -q 'fuck' "$f"; done real 1m23.776s user 0m27.980s sys 0m31.430s $ Und obiges Beispiel ist nicht sonderlich weit hergeholt... [..]
natuerlich bei un*x: dec unix 3.2g ... da war das alles noch net so flexibel, nix gnu und so. da wusste man noch fuer was pipes erfunden wuerden.
Nonsens. Deine Variante muss 2 Prozesse starten und 3 Dateien oeffnen und die pipe dazwischen muss angelegt werden. - die pipe wird angelegt (d.h. die Dateidescriptoren von /dev/stdout fuer cat und /dev/stdin fuer egrep werden umgebogen). - cat oeffnet die Dateien "EINGABE" und /dev/stdout - egrep oeffnet /dev/stdin Die "richtige" Variante startet einen Prozess und oeffnet eine Datei. - egrep oeffnet nur die Datei "EINGABE".
ausserdem macht egrep intern auch nix anderes. die prozessersparniss ist also ein trugschluss.
s.o. -dnh -- 112: Regular File Reguläre Dateien sind die dümmsten Teile jedes Betriebssystems, sie können nichts außer das wieder ausplappern, was man ihnen erzählt hat. Sie glauben alles und immer nur das letzte, was ihnen gesagt wurde. Völlig kritiklos nehmen sie jeden Schwachsinn willenlos entgegen. (Frank Klemm)