Puoi usare lo grepstrumento per cercare ricorsivamente la cartella corrente con un -rparametro, come:
grep -r "pattern" .
Nota: -r- Cerca ricorsivamente le sottodirectory.
Per cercare all'interno di file specifici, è possibile utilizzare una sintassi globbing come:
grep "class foo" **/*.c
Nota: utilizzando l' opzione globbing ( **), esegue la scansione di tutti i file in modo ricorsivo con estensione o modello specifici. Per abilitare questa sintassi, eseguire: shopt -s globstar. È inoltre possibile utilizzare **/*.*per tutti i file (esclusi quelli nascosti e senza estensione) o qualsiasi altro motivo.
Se hai l'errore che l'argomento sia troppo lungo, considera di restringere la ricerca o usa la findsintassi invece come:
find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'
In alternativa usa ripgrep.
Se stai lavorando su progetti più grandi o file di grandi dimensioni, dovresti ripgrepinvece utilizzare , come:
rg "pattern" .
Controlla i documenti, i passaggi di installazione o il codice sorgente nella pagina del progetto GitHub .
E 'molto più veloce rispetto a qualsiasi altro strumento come GNU / BSD grep , ucg, ag, sift, ack, pto simili, dal momento che è costruito sulla cima di motore regex di Rust , che utilizza automi a stati finiti, SIMD e ottimizzazioni letterali aggressivi per rendere la ricerca molto veloce.
Supporta i pattern ignorati specificati nei .gitignorefile, quindi un singolo percorso di file può essere abbinato a più pattern glob contemporaneamente.
È possibile utilizzare i parametri comuni come:
-i - Ricerca insensibile.
-I - Ignora i file binari.
-w - Cerca le parole intere (al contrario della corrispondenza parziale delle parole).
-n - Mostra la linea della tua partita.
-C/ --context(ad es. -C5): aumenta il contesto, in modo da visualizzare il codice circostante.
--color=auto - Contrassegna il testo corrispondente.
-H - Visualizza il nome del file in cui è stato trovato il testo.
-c- Visualizza il conteggio delle righe corrispondenti. Può essere combinato con -H.