Hoe kan ik recursief grep
alle directories en subdirectories?
find . | xargs grep "texthere" *
grep -r "texthere" .
De eerste parameter is de reguliere uitdrukking waarnaar gezocht moet worden, terwijl de tweede de directory weergeeft waarin gezocht moet worden. In dit geval betekent .
de huidige directory.
Opmerking: Dit werkt voor GNU grep, en op sommige platformen zoals Solaris moet je specifiek GNU grep gebruiken in tegenstelling tot de oude implementatie. Voor Solaris is dit het ggrep
commando.
Als je de extensie of het patroon weet van het bestand dat je wilt hebben, is een andere methode het gebruik van de --include
optie:
grep -r --include "*.txt" texthere .
U kunt ook bestanden noemen om uit te sluiten met --exclude
.
Als je vaak code doorzoekt, is Ag (The Silver Searcher) een veel sneller alternatief voor grep, dat's aangepast voor het doorzoeken van code. Het is bijvoorbeeld standaard recursief en negeert automatisch bestanden en mappen die in .gitignore
staan, zodat je niet steeds dezelfde omslachtige exclude-opties aan grep of find hoeft door te geven.