cercare ricorsivamente un testo contenuto in uno o più file
Vi sarà capitato un miliardo di volte, avete una serie di file sparsi in un albero di cartelle più o meno incasinate e volete sapere in quali di essi si trova una data stringa.
Perfetto, grep è quello che fa per voi se i file in questione sono file di testo. Il comando è molto semplice, prima lo vediamo per poi spiegarlo:
grep -rnwl '/path/dove/guardare/' -e "testoDaCercare"
In pratica chiediamo a grep di cercare ricorsivamente (r) un testo esatto (w) restituendo il numero di riga (n) e il nome del file (l) in cui lo trova.
Se vogliamo escludere certi file possiamo utilizzare l'opzione --exclude:
grep --exclude=*.cpp -rnwl '/path/dove/guardare/' -e "testoDaCercare"
Se vogliamo escludere intere directory possiamo utilizzare l'opzione --exclude-dir:
grep --exclude-dir={man,docs} -rnwl '/path/dove/guardare/' -e "testoDaCercare"
E con questo è tutto, o per lo meno è quanto basta per iniziare. Se volete altre opzioni guardatevi la pagina man di grep e divertitevi.