Puoi utilizzare lo strumento grep
per cercare in modo ricorsivo la cartella corrente con il parametro -r
, ad esempio:
grep -r "pattern" .
Nota: -r
- Cerca ricorsivamente sottodirectory
Per cercare all'interno di file specifici, puoi 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 un'estensione o un modello specifico. Per attivare questa sintassi, esegui: shopt -s globstar
. Puoi anche utilizzare **/*.*
per tutti i file (esclusi quelli nascosti e senza estensione) o qualsiasi altro modello.
Se hai l'errore che il tuo argomento è troppo lungo, prendi in considerazione la possibilità di restringere la ricerca o utilizzare invece la sintassi find
, ad esempio:
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 usare ripgrep
invece, come:
rg "pattern" .
Leggi i documenti, i passaggi di installazione o il codice sorgente nella pagina del progetto GitHub .
È molto più veloce di qualsiasi altro strumento come GNU / BSD grep
, ucg
, ag
, sift
, ack
, pt
o simile, poiché è costruito in cima a l'espressione regolare di Rust motore che utilizza automi finiti, SIMD e ottimizzazioni letterali aggressive per rendere la ricerca molto veloce.
Supporta i pattern di ignora specificati nei file .gitignore
, quindi un singolo percorso file può essere confrontato simultaneamente con più pattern glob.
Puoi usare i parametri comuni come:
-
-i
- Ricerca insensibile.
-
-I
- Ignora i file binari.
-
-w
- Cerca le parole intere (in opposizione a corrispondenza di parole parziali).
-
-n
- Mostra la riga della tua corrispondenza.
-
-C
/ --context
(ad esempio -C5
) - Aumenta il contesto, quindi vedi il codice circostante.
-
--color=auto
- Segna il testo corrispondente.
-
-H
: visualizza il nome del file in cui viene trovato il testo.
-
-c
- Visualizza il conteggio delle linee corrispondenti. Può essere combinato con -H
.