Ich suche in einer Ruby on Rails-Anwendung unter grep
OSX nach einem Wort und möchte Verzeichnisse ausschließen, die einem bestimmten Muster entsprechen.
Ich benutze den folgenden Befehl:
grep -inRw -E 'direct' . --exclude-dir -E 'git|log|asset'
Dieser Befehl tut nicht das, was ich erwartet hatte. Hier ist, wie ich dachte, dass es funktionieren würde:
- i - Suche ohne Berücksichtigung der Groß- und Kleinschreibung
- n - Druckzeilennummer, in der das Muster gefunden wird
- R - Suche rekursiv
- w - Ich möchte nur ganze Wörter - also "direkt", aber nicht "Verzeichnis"
- -E - Verwenden Sie einen erweiterten regulären Ausdruck
- 'direct' - der reguläre Ausdruck, mit dem ich übereinstimmen möchte
- . - Suche im aktuellen Verzeichnis
- --exclude-dir -E 'git | log | asset' - schließt Verzeichnisse aus, die git oder log oder asset entsprechen.
In Bezug auf die Exclude- Verzeichnisse sucht der Befehl immer noch in den Verzeichnissen './git' und './log' sowie in './app/assets'.
Mir fehlt offensichtlich ein grundlegendes Stück Wissen, aber ich weiß nicht, was es ist.
quelle
--exclude-dir
versteht nicht|
.Sie können jedoch den gleichen Effekt erzielen, indem
--exclude-dir
Sie für jedes Verzeichnis, das Sie ausschließen möchten, mehrmals eines angeben:quelle
--exclude-dir={home}
. Ich habe gearbeitet, als ich getippt habe--exclude-dir 'home'