In mehreren Unterverzeichnissen nach einem String suchen

N

noob222

Mitglied
hallo,

möchte am besten mit nur einem Befehl nach einem bestimmten String in mehreren Verzeichnissen suchen.

1)
Code:
grep "String" *.html
sucht ja nur im aktuellen Verzeichnis
2)
Code:
 find beispiel/ -type f -name "*.htm" | xargs grep -l String
sucht ja alle Unterverzeichnisse ab z.B. /home/noob222/beispiel

Aber wie kann ich am besten von meinem Home-Verzeichnis (also /home/) in allen Unterverzeichissen nach einem "String" suchen?
Geht das überhaupt? habe außer den obigen Befehlen nichts besseres gefunden.

vielen dank
mfg


ps: Benutze eine Solaris 8 Maschine
 
Zuletzt bearbeitet:
Hallo
Falls du GNU grep verwendest, kannst du auch die Option -R verwenden (R für Rekursiv)
Code:
grep -R String *.html
Gruss
d22
 
Hi noob222,

Code:
find $HOME -type f -name "*.htm" -exec grep -l "String" {} \;
sollte wohl auch das Gewünschte erledigen ...

Grüße ...
 
hi floyd 62,

habe es mal ausrpobiert aber nach dem Befehl ist keine kurze Verzögerung (also ob er das Ergebnis ausgeben will) aber dann kommt nichts. Es wird dann wieder nur der aktuelle Pfad angezeigt.
 
"man find" hilft weiter

laut "man find" zeile 925 müsste folgendes funktionieren:
Code:
find /home -type f -name "*.htm" | xargs grep -l String
 
laut "man find" zeile 925 müsste folgendes funktionieren:
Code:
find /home -type f -name "*.htm" | xargs grep -l String

...ich verwende den -exec in find stets nach dem Format
Code:
find -type f -name '*html' -exec grep -l "<String>" "{}" ";"
... das "{} \" ist mir neu.
 
@ mic86

danke, klappt jetzt wie ich es wollte.

habe (wo du es jetzt geschrieben hast) versucht die "man find" aufzurufen.
kriege als fehlermeldung:
No manual entry for find.
 

Ähnliche Themen

Löschscript mit Logging

verzeichniss suche funktioniert nicht

Inhalte in einer Datei suchen und Dateiname ausgeben

Last mit etc/passwd anzeigen lassen

Samba 3.2.5 - Win XP-Netzwerkumgebung bleibt leer

Zurück
Oben