Re: sed und regex

From: Robert Barten <robert(at)barok.de>
Date: Wed, 7 Jan 2004 05:24:57 +0100

On Wed, Jan 07, 2004 at 04:05:04AM +0100, Simon 'corecode' Schubert wrote:
> >>das ist ja auch klar: die Shell macht die Umleitung auf `bar', und
> >>zwar *bevor* sie cat ausfuehrt. Da ist dann die Datei schon
> >>ueberschrieben.

Das ist mir nicht klar. Die Ausgabe von cat wird durch die Pipe an sed
übergeben. Je nach Komplexität braucht sed länger als das Pipen, bei mir
in unserem Beispiel stets 99,5%. Ich habe keinen Unterschied zwischen
CPU-Leistungen (3 versch.) festgestellt, die Proportionen cat/sed
scheinen in diesem Beispiel wohl fast gleich zu sein. Gib cat etwas mehr
zu tun (s/spam/spamassassin/), und Du kommst an die 100% ran. Wie auch
immer, die Ausgabe von cat ist komplett an sed übergeben worden, nichts
spricht dagegen, dass sed nun die Quelle überschreibt*.

> >Immer locker (tcsh):
> >
> >nvg(at)asus ttyp2 2:38 /home/nvg> echo spam > bar
> >nvg(at)asus ttyp2 2:39 /home/nvg> cat bar | sed -e 's/sp/h/' > bar
> >nvg(at)asus ttyp2 2:39 /home/nvg> cat bar
> >ham
>
> Ein Glueckstreffer! Ein positives Ergebniss kann keine Hypothese
> beweisen; nur ein negatives Ergebniss kann eine Hypothese widerlegen.

Einen Glückstreffer würde ich _Deinen_ nennen, immerhin 6 aus 200, da
hast Du doch dran gedreht? :)

> DING! corecode(at)r180176:~ % echo $count
> 194

Aber Du hast Recht, ich bin bisher davon ausgegangen, dass erst nach
Beendigung der Pipe der Rest fortgesetzt ist, das ist Quatsch, benutze
ich doch solche Streams täglich beim Backup zum Beispiel. Da wird auch
nicht gewartet, zum Glück. Ich danke und werde mich in Zukunft nicht
mehr darauf verlassen, dass der Prozess nach der Pipe länger mit der
Verarbeitung der Daten zu tun hat als der davor. Teste trotzdem mal
cat bar | gzip > bar auf Deinen Systemen, ich bekomme 10000/10000.

* Außer gesunder Menschenverstand, ein Original ohne Sicherung zu
überschreiben ist nicht die feine Art.

-- 
Robert Barten
To Unsubscribe: send mail to majordomo.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 07 Jan 2004 - 05:27:24 CET

search this site