grep: cercare strighe nei file
Uno dei comandi che uso maggiormente da CLI, sia su Linux che su MacOS, è grep (general regular expression print). Grep permette di cercare stringhe nei file; di base la sintassi è:
1 |
grep STRINGA_RICERCA FILE |
Ad esempio per cercare “casa” nel file “pippo.txt” possiamo digitare:
1 |
grep casa pippo.txt |
Ci sono una serie di opzioni che possiamo utilizzare e che permettono di rendere la ricerca più precisa. Ad esempio, di default la stringa da cercare è case_sensitive, pertanto nel precedente esempio non verrebbero cercate le parole “Casa” oppure “CASA”, ma solo “casa”. Per rendere la ricerca case_insensitive, possiamo aggiungere l’opzione -i, es:
1 |
grep -i casa pippo.txt |
Ecco le opzioni principali:
-i
Ignora le differenze tra lettere maiuscole e minuscole.
-A[n] Mostra n righe successive alla stringa trovata
-B[n] Mostra n righe precedenti alla stringa trovata
-C[n] Mostra n righe precedenti e successive alla stringa trovata
-n
Precede ogni linea dei risultati con il numero di linea all’interno del file (partendo da 1).
-l
Indica solo i nomi dei file in cui è stata trovata almeno una corrispondenza (ciascun file è elencato una sola volta, indipendentemente dal numero di corrispondenze in esso trovate).
-v
Nega i modelli specificati, producendo un elenco delle linee che non soddisfano alcun modello.
-E
I modelli sono espressioni regolari estese invece che espressioni regolari di base.
-c
Produce per ciascun file solo il conteggio del numero di linee che corrispondono.
-r Cerca anche nelle sottocartelle
Un’altra cosa molto utile è la ricerca sono nei file con una certa estensioni anche nelle sottocartelle. In questo caso il comando da dare è:
1 |
grep -r echo * --include=*.php |
enjoy!
Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta