Ich benutze öfters grep um verschieden Programm-schnipsel auf einen bestimmten ausdruck zu durchsuchen. Leider muss man bei grep nach meinem wissenstand immer die verzeichnistiefe angeben. also tippe ich immer:
> grep -l 'divDevRhoReff' */*/*/*/*/*/*/*/*/*/*/*
grep: */*/*/*/*/*/*/*/*/*/*/*: No such file or directory
> grep -l 'divDevRhoReff' */*/*/*/*/*/*/*/*/*/*
grep: */*/*/*/*/*/*/*/*/*/*: No such file or directory
> grep -l 'divDevRhoReff' */*/*/*/*/*/*/*/*/*
> grep -l 'divDevRhoReff' */*/*/*/*/*/*/*/*
...
> grep -l 'divDevRhoReff' *
Dabei ist mir aufgefallen, dass grep anscheinen immer nur in der letzten möglichen Verzeichnisstiefe sucht. so findet zum Beispiel
> grep -l 'divDevRhoReff' */*/*
Ergebnisse, die
> grep -l 'divDevRhoReff' */*/*/*/*/*/*/*/*
nicht findet.
Meine Frage ist, wie kann ich grep dazu bringen ALLE nachfolgenden Verzeichnisse zu durchsuchen? Auch auf die Gefahr hin, dass es so sehr lange dauert.
versuch mal find mit grep zu verbinden. find kann alle Verzeichnisse rekursiv durchsuchen. Die von find gefundene datei übergibts Du dann an grep um sie auf den gewünschten Inhalt zu prüfen.
Ich bin leider nicht sehr vertraut mit der genauen Syntax. Aber hier ist ein Beispiel das angelehnt an Deine Fragestellung funktionieren sollte:
File and Directory Selection
…]
-d ACTION, --directories=ACTION
If an input file is a directory, use ACTION to process it. By default, ACTION is read, which means that directories are read just as if they were ordinary files. If ACTION is skip, directories are silently skipped. If ACTION is recurse, grep reads all files under each directory, recursively; this is equivalent to the -r option.
…]
-R, -r, --recursive
Read all files under each directory, recursively; this is equivalent to the -d recurse option.
Danke für den Tipp. mit deinem code hats geklappt. diese verlinkumg von find und grep ist auch in wikipedia beschrieben aber damit hats nicht funktioniert.
Hallo Martin,
genau nach so was einfaches habe ich gesucht aber damit funktionierts leider nicht. bei mir zumindest tut sich da gar nichts…