Kako lahko rekurzivno grepam?

Kako rekurzivno grepam vse imenike in podimenike?

find . | xargs grep "texthere" *
Rešitev
grep -r "texthere" .

Prvi parameter predstavlja regularni izraz za iskanje, drugi pa imenik, ki ga je treba poiskati. V tem primeru . pomeni trenutni imenik.

Opomba: To deluje za GNU grep, na nekaterih platformah, kot je Solaris, pa morate posebej uporabiti GNU grep v nasprotju s starejšo implementacijo. Za Solaris je to ukaz ggrep.

Komentarji (11)

Če poznate končnico ali vzorec želene datoteke, lahko uporabite tudi možnost --include:

grep -r --include "*.txt" texthere .

Datoteke, ki jih želite izključiti, lahko navedete tudi z možnostjo --exclude.

Ag

Če pogosto iščete po kodi, je Ag (The Silver Searcher) veliko hitrejša alternativa grepu, ki je prilagojena za iskanje po kodi. Privzeto je na primer rekurziven in samodejno ignorira datoteke in imenike, ki so navedeni v .gitignore, zato vam ni treba vedno znova podajati istih okornih možnosti izključitve v grep ali find.

Komentarji (7)

Prav tako:

find ./ -type f -print0 | xargs -0 grep "foo"

vendar je grep -r boljši odgovor.

Komentarji (10)