Re: (leicht OT) Unterschied grep unter bsd/linux?

From: Aron Schlesinger <as(at)bsdgroup.de>
Date: Thu, 5 Jun 2008 17:12:36 +0200

Am 05.06.2008 um 16:54 schrieb Oliver Fromme:
> Aron Schlesinger wrote:
>> Oliver Fromme wrote:
>>> [...]
>>> Ich persönlich verwende nie grep -r (oder -R), sondern
>>> verwende find in Verbindung mit xargs. Dies ist flexibler,
>>> und ich habe den Eindruck, dass es auch schneller ist (ich
>>> habe aber keine Benchmarks gemacht).
>>>
>>> find . -type f -not -name '*.svn' | xargs grep hurz
>>>
>>> (Wenn man's häufig braucht, ist das natürlich ein Kandidat
>>> für einen Alias oder eine Shell-Funktion.)
>>
>> dann doch lieber:
>>
>> find . -type f ... -exec grep -H hurz {} \;
>>
>> sonst muss man ja das gesamte find Ergebnis abwarten...
>
> Halte ich für eine schlechte Idee, weil dann das grep-
> Kommando für jede einzelne Datei ausgeführt wird. Bei
> einer großen Anzahl Kommandos ist das tierisch ineffi-
> zient. Den fork+exec-Overhead sollte man nicht unter-
> schätzen.

time sh -c 'time grep -ri if_ .'
0.192u 0.277s 0:00.51 90.1% 101+292k 0+0io 0pf+0w

time sh -c 'find . -type f | xargs grep -i if_'
0.195u 0.327s 0:00.56 91.0% 90+272k 0+0io 0pf+0w

time sh -c 'find . -type f -exec grep -Hi if_ {} \;'
5.273u 14.189s 0:19.78 98.3% 83+205k 0+0io 0pf+0w

OK so weit hab ich nicht gedacht gehabt.
Gebe mich geschlagen :-)

Grüße
   Aron

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 05 Jun 2008 - 17:12:54 CEST

search this site