Re: sed und regex

From: Robert Barten <robert(at)barok.de>
Date: Wed, 7 Jan 2004 06:28:40 +0100

On Wed, Jan 07, 2004 at 06:01:36AM +0100, Bernd Walter wrote:
> On Wed, Jan 07, 2004 at 05:24:57AM +0100, Robert Barten wrote:
> > 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*.
>
> Doch - die Pipe als solches ist nichts weiter als eine Durchreiche mit
> einem Puffer.
> Die Puffergröße ist je nach OS und Version unterschiedlich.
> Sobald du mehr Daten veschickst, als reinpasst wird gleichzeitig
> gelesen und geschrieben.
> Außerdem hast du absolut keine Garantie darüber ob zuerst gelesen oder
> zuerst die Ausgabedatei geleert wird - eigendlich soll es ja gleich-
> zeitig passieren, was die Frage nach der Reihenfolge eh verbietet.

Deshalb macht die Shell auch keine Umleitung auf `bar', *bevor* sie cat
ausführt.

> Spätestens bei einem SMP System wirst du diese Gleichzeitigkeit auch
> erleben können - laut Murphy wird es aber wenigstens lange genug
> gutgehen, bis wichtige Daten betroffen sind.

Ich bin auf einem SMP-System. Aber klare Sache, selbst 5 von 1000 sind 5
zuviel. cat bar | ... > bar.neu && mv bar bar.alt && mv bar.neu bar - so,
und nicht anders :)

-- 
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 - 06:30:58 CET

search this site