Puoi usare lo grep
strumento per cercare ricorsivamente la cartella corrente con un -r
parametro, 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 find
sintassi 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 ripgrep
invece 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
, pt
o 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 .gitignore
file, 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
.