suche nach dateien mit inhalt

Post Reply
Message
Author
nafets

suche nach dateien mit inhalt

#1 Post by nafets »

kurze verstaendnisfrage : wenn ich folgendes (als root) mache

find / -name "*" | grep "zeichenkette" > liste_der_dateien_mit_inhalt_zeichenkette.txt

sollten doch alle dateien im "verzeichnis" / und aller unterverzeichnisse, die den inhalt "zeichenkette" haben in die oben genannte ausgabedatei geschrieben werden, oder?

klappt irgendwie nicht so ganz, vielleicht kann mir einer weiterhelfen, was ich falsch mache.

nafets

ratte

Re: suche nach dateien mit inhalt

#2 Post by ratte »

Voraussetzung: die Datei 'ls' hat den <i>Namen</i> ls und binaeren <i>Inhalt</i>.

Alle Dateien finden, deren <b>Inhalt</b> <i>Ausdruck</i> ist:

grep -rli <i>Ausdruck</i> /

Alle Dateien finden, deren <b>Namen</b> <i>Ausdruck</i> enthaelt:

find / -name "*<i>Ausdruck</i>

ratte

Re: suche nach dateien mit inhalt

#3 Post by ratte »

sorry, zu schnell geklickt...


Voraussetzung: die Datei 'ls' hat den <i>Namen</i> ls und binaeren <i>Inhalt</i>.

Alle Dateien finden, deren <b>Inhalt</b> <i>Ausdruck</i> ist:

grep -rli <i>Ausdruck</i> /

Alle Dateien finden, deren <b>Namen</b> <i>Ausdruck</i> enthaelt:

find / -name "*<i>Ausdruck</i>*"

Jochen

Re: suche nach dateien mit inhalt

#4 Post by Jochen »

Ein, zwei Verbesserungsmöglichkeiten:

1. Zu '-name "*"': find löst die Wildcards auf wie die Shell, und das bedeutet, dass Dateinamen, die mit einem Punkt beginnen, <b>nicht</b> vom Sternchen erfasst werden! Lass es einfach weg, dann findet find sowieso alle Dateien.

2. Das Durchgreppen von Verzeichnissen, block/character devices und so ist meist nicht sinnvoll. Schränke find ein, dass Du nur normale Dateien aufgelistet haben möchtest: "-type f"

3. find liefert eine Liste aller Dateien, die er findet. Mittels grep durchsuchst Du genau diese Liste mit Dateinamen, aber nicht die Dateien selbst! (S. auch vorheriges Posting) Um eine Argumentliste für grep aus diesen Dateinamen zu basteln, verwende einfach xargs.

Fazit:<pre>find / -type f | xargs grep -l "zeichenkette" >dateien-die-zeichenkette-enthalten.txt</pre>

(Ratte: Funktioniert auch da, wo kein GNU-grep installiert ist!)

Hat's geholfen?

nafets

Re: suche nach dateien mit inhalt

#5 Post by nafets »

cooooool, danke leute. ihr habt mir jede menge arbeit ersparrt :) ich glaub ich pack das ganze mal in' shell-script mit 2 variablen und nenns dann findcontent oder sowas :)

danke nochmal

nafets

Post Reply