Przeszukuję aplikację Ruby on Rails dla słowa grep
używanego w OSX i chciałbym wykluczyć katalogi pasujące do określonego wzorca.
Używam następującego polecenia:
grep -inRw -E 'direct' . --exclude-dir -E 'git|log|asset'
To polecenie nie działa tak, jak myślałem. Oto, jak myślałem, że to zadziała:
- i - wyszukiwanie bez rozróżniania wielkości liter
- n - wydrukuj numer linii, w której znaleziono wzór
- R - szukaj rekurencyjnie
- w - Chcę tylko całe słowa - tzn. dopasuj „bezpośredni”, ale nie „katalog”
- -E - użyj rozszerzonego wyrażenia regularnego
- „direct” - wyrażenie regularne, które chcę dopasować
- . - szukaj w bieżącym katalogu
- --exclude-dir -E 'git | log | asset' - wyklucz katalogi, które pasują do git lub logu lub zasobu.
Jeśli chodzi o katalogi wykluczeń, polecenie nadal kończy wyszukiwanie w katalogach „./git” i „./log” , a także w „./app/assets”
Oczywiście brakuje mi podstawowej wiedzy, ale nie wiem, co to jest.
źródło
--exclude-dir
nie rozumie|
.Możesz jednak uzyskać ten sam efekt, określając
--exclude-dir
wiele razy, po jednym dla każdego katalogu, który chcesz wykluczyć:źródło
--exclude-dir={home}
. Pracowałem, kiedy pisałem--exclude-dir 'home'