
Bei der Verwendung von grep mit Platzhaltern wie in
grep -in github */*
für jedes Verzeichnis grep
werden viele Meldungen angezeigt wie
grep: dir1/dir2: Is a directory
Wie kann man diese Nachrichten unterdrücken?
--exclude-dir
Zu meiner Überraschung funktioniert die Verwendung der Flagge nicht.
Ich verwende es grep (BSD grep) 2.5.1-FreeBSD
unter MacOS.
Antwort1
-d skip
bewirkt, dass grep Verzeichnisse überspringt:
grep -in -d überspringen github/
Entsprechenddiese MaxOS-Manpagediese Option sollte für MacOS grep funktionieren. Wenn sich herausstellt, dass dies mit dem MacOS grep nicht funktioniert, können Sie es installieren.Homebrew MacOS-Paketmanagerund installieren Sie dann mit Homebrew dieGNU-Version von grep, da GNU grep dies unterstützt -d skip
(in diesem Fall müssen Sie jedoch das Verzeichnis, das GNU grep enthält, an die erste Stelle in Ihrer PATH
Umgebungsvariable setzen).
Antwort2
Verwenden Sie find
fürfindenDateien grep
undg/re/pinnerhalb der Dateien:
find . -mindepth 2 -maxdepth 2 -type f -exec grep -in github {} \;
Die Namen der einzelnen Werkzeuge enthalten wichtige Hinweise auf ihren Zweck :-).