[linux-l] Dateien durchsuchen

Jan-Benedict Glaw jbglaw at lug-owl.de
Di Nov 26 10:38:00 CET 2002


On Mon, 2002-11-25 18:13:32 +0100, Christoph Biedl <cbiedl at gmx.de>
wrote in message <1038168607.mail.zedat at ID-576.user.dfncis.de>:
> Jan-Benedict Glaw wrote...
> 
> > On Mon, 2002-11-25 17:48:16 +0100, georg Smeets <georg at smeets-net.de>
> > wrote in message <BOECJOCMEHJLCCHHPIHAEEPFDDAA.georg at smeets-net.de>:
> > > Hallo Liste
> > > 
> > > ich weß zwar wie ich mit dem more grep befehl Dateien nach einer bestimmten
> > > Zeichenfolge durchsuche. Wie kann ich alle Dateien des Systems durchsuchen?
> > 
> > find / -type f -exec grep -H suchmich {} \;
> 
> *hüstel*
> 
> Problem 1: Dateinamen mit ungewöhnlichen Zeichen (z.B. Leerzeichen) machen
> Schwierigkeiten. Falls also eine parallel Windowsinstallation gemountet
> ist, wird's ab "Eigene Dateien" sehr lustig.

Ja?

jbglaw at min:~/tempdir$ find . -type f -exec grep -H ein {} \;
./Verzeichnis mit Leerzeichen/Datei mit Leerrzeichen:Das ist ein Text

Sehe ich anders. {} wird als _ein_ Eintrag in argv[] übergeben.

> Problem 2: Für jede gefundene Datei wird grep aufgerufen. Das
> funktioniert, ist aber performancemäßig herausgefordert.
> 
> Lösung: find / -type f -print0 | xargs -r0 grep suchmich

Das hatten wir schonmal:-) Das klappt, solange die Programme aus der
GNU-Ecke kommen. Leider ist diese Variante aber nicht überall benutzbar,
sodaß ich, auch, wenn's klapen mag, lieber bei der "langsamen", aber
immer funktionierenden, Variante bleibe.

> Lesetip: http://www.heise.de/ix/artikel/2001/07/164/

Genau:
"Die GNU-Versionen von find und xargs - beide Programme sind im Paket
'findutils' enthalten - bieten eine sichere Lösung an. Das
Argument -print0 veranlasst GNU-find, den Dateinamen nicht wie üblich
mit einem Linefeed-Zeichen, sondern mit einem Null-Byte abzuschließen.
Dies ist das einzige Zeichen, das in einem Dateinamen nicht vorkommen
kann - eine Folge der Konvention für die Parameterübergabe von Unix und
C. Es eignet sich deshalb ideal als Trennzeichen."

GNUU-Programme werden genannt. Doch wehe, wenn man mal in das böse
Territorium des falschen Un*xes kommt:-) Dann doch lieber die
Portabilität des langsameren Weges...

MfG, JBG

-- 
   Jan-Benedict Glaw       jbglaw at lug-owl.de    . +49-172-7608481
   "Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur
    fuer einen Freien Staat voll Freier Bürger" | im Internet!
   Shell Script APT-Proxy: http://lug-owl.de/~jbglaw/software/ap2/
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: nicht verfügbar
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20021126/69de795b/attachment.sig>


Mehr Informationen über die Mailingliste linux-l