Szukam ciągu foo=
w plikach tekstowych w drzewie katalogów. Jest na wspólnej maszynie z Linuksem, mam powłokę bash:
grep -ircl "foo=" *
W katalogach znajduje się także wiele plików binarnych pasujących do „foo =”. Ponieważ te wyniki nie są istotne i spowalniają wyszukiwanie, chcę, aby grep pomijał wyszukiwanie tych plików (głównie obrazy JPEG i PNG). Jak mam to zrobić?
Wiem, że istnieją opcje --exclude=PATTERN
i --include=PATTERN
, ale jaki jest format wzoru? Strona man grep mówi:
--include=PATTERN Recurse in directories only searching file matching PATTERN.
--exclude=PATTERN Recurse in directories skip file matching PATTERN.
Wyszukiwanie w grep włącz , grep włącz wyklucz , grep wyklucz i warianty nie znalazły nic istotnego
Jeśli istnieje lepszy sposób na grepowanie tylko w niektórych plikach, jestem za tym; przeniesienie niepoprawnych plików nie jest opcją. Nie mogę przeszukiwać tylko niektórych katalogów (struktura katalogów to wielki bałagan, wszystko jest wszędzie). Ponadto nie mogę niczego zainstalować, więc muszę zrobić ze zwykłymi narzędziami (takimi jak grep lub sugerowane znalezisko ).
--exclude-dir=.svn
, aby grep w ogóle do nich nie wchodził
grep -r --exclude-dir=var "pattern" .