Wie suche ich in allen .java-Dateien nach einer einfachen Zeichenfolge (keine reguläre Zeichenfolge) im aktuellen Verzeichnis und in allen Unterverzeichnissen unter Mac OS X? Ich möchte nur eine Liste der übereinstimmenden Datei- und Verzeichnisnamen drucken.
12
Antworten:
Und das immer beliebt
EDIT (von Frank Szczerba):
Wenn Sie mit Dateinamen oder Verzeichnissen arbeiten, in denen Leerzeichen enthalten sind, ist dies am sichersten:
Es gibt immer mehr als einen Weg, dies zu tun.
quelle
mdfind
ist ein OSXy-Weg, dies zu tun !Die traditionelle UNIX-Antwort wäre die, die für diese Frage akzeptiert wurde:
Dies wird wahrscheinlich für Java-Dateien funktionieren, aber Leerzeichen in Dateinamen sind auf Macs weitaus häufiger als in der traditionellen UNIX-Welt. Wenn Dateinamen mit Leerzeichen durch die Pipeline oben geleitet werden, interpretiert xargs die einzelnen Wörter als unterschiedliche Namen.
Was Sie wirklich wollen, ist, die Namen nicht zu trennen, um die Grenzen eindeutig zu machen:
Die Alternative besteht darin, find run grep für Sie ausführen zu lassen, wie Mark vorschlägt, obwohl dieser Ansatz langsamer ist, wenn Sie eine große Anzahl von Dateien durchsuchen (da grep nicht nur einmal mit der gesamten Dateiliste, sondern nur einmal pro Datei aufgerufen wird).
quelle
Verwenden Sie das grep, das besser ist als grep, ack :
quelle
Dabei wird ein regulärer Ausdruck verwendet, wenn Sie möchten. Halten Sie sich einfach von den Metazeichen fern oder entziehen Sie sich diesen, und Sie können nach Zeichenfolgen suchen.
quelle
quelle
Da es sich um eine OSX-Frage handelt, finden Sie hier eine spezifischere Antwort für OSX.
Überspringen
find
und verwendenSpotlight
über die Befehlszeile verwenden. Viel mächtiger!COMMAND LINE SPOTLIGHT - FIND TRIFFT GREP
quelle
Probieren Sie es aus:
quelle
Sie können auch ein GUI-Programm wie TextWrangler verwenden , um eine intuitivere Suche durchzuführen, bei der die Optionen in der Benutzeroberfläche angezeigt werden.
quelle
Wenn Sie die Groß- / Kleinschreibung ignorieren möchten, ersetzen Sie -rl durch -irl. (Ihre Zeichenfolge) kann auch ein regulärer Ausdruck sein, wenn Sie jemals die Notwendigkeit sehen.
quelle