Rekursiv nach Dateien mit einem bestimmten Namen, und finden Sie die Instanzen von einem bestimmten Satz UND anzeigen der Pfad zu dieser Datei
Ich habe eine Reihe von Ordnern und Unterordnern. Jedes enthält unter anderem eine text-Datei namens index.yml
mit nützlichen Daten. Ich will suchen durch all die verschiedenen index.yml
Dateien nach Instanzen von einem such-string. Ich muss in der Lage sein zu sehen, ein paar Zeilen Kontext und das Verzeichnis der index.yml
- Datei, die gefunden wurde.
Diese fast funktioniert, aber es nicht geben Sie mir die mit dem Namen:
cat `find . -name 'index.yml'`| grep -i -C4 mySearchString
Wie kann ich das machen und bekomme das mit dem Namen?
Bin ich stecken unter Windows mit msys. Hinweis: ich weiß nicht scheinen, um die volle GNU grep, also ich kann nicht laufen grep --exclude
oder grep -R
wie bereits in anderen Fragen.
InformationsquelleAutor AndyL | 2010-08-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen Sie dies:
Hinweis: nicht wirklich getestet, unter msys.
Super!!! Danke. Sobald wir ALSO an mir.. ich nehme die Antwort. Scheint einige Zeit zu begrenzen.
Also, was bedeutet {} \; tun?
ersetzt wird mit einem Dateinamen (oder Verzeichnisnamen) finden Sie gefunden.
\;
kennzeichnet das Ende der Argumente für die exec. der slash zu entgehen Semikolon von der shell aus. manchmal ist es auch notwendig, um die Flucht der{}
.Das ist ein "backslash", nicht "slash".
InformationsquelleAutor lesmana
Eine Möglichkeit (ich weiß nicht, was msys akzeptiert genau):
Den
/dev/null
dient, um sicherzustellen, gibt es mindestens zwei Pfade, so dass der Pfadname ist bedruckt mit jedem Spiel. Die-H
option grep hat eine ähnliche Wirkung.Den
-exec
...+
Konstrukt infind
Ursachen mehrere Pfadnamen übergeben werden, um eine einzelne Instanz des Befehls. Wenn es nicht implementiert ist, müssen Sie die-exec
...\;
.InformationsquelleAutor jilles