Wiki di Michele

grep

GuidaUltima modifica: 24/10/2026 Verificata il 24/10/2026

grep cerca righe che contengono un testo o un'espressione regolare, in uno o più file o nell'output di altri comandi.

Sintassi

grep [opzioni] "modello" [file...]

Esempi base

grep "errore" log.txt
grep -i "errore" log.txt
grep -n "errore" log.txt
grep -c "errore" log.txt
grep -v "errore" log.txt
grep -w "root" /etc/passwd

Opzioni utili

OpzioneSignificato
-iIgnora maiuscole/minuscole
-nMostra il numero di riga
-cConta le righe corrispondenti
-vInverte: mostra le righe che NON corrispondono
-wCerca solo parole intere
-rRicorsivo nelle cartelle
-lMostra solo i nomi dei file che contengono il testo
-LMostra i file che NON lo contengono
-oStampa solo la parte che corrisponde
-EEspressioni regolari estese
-A nMostra anche n righe dopo la corrispondenza
-B nMostra anche n righe prima
-C nMostra n righe prima e dopo
--colorEvidenzia le corrispondenze

Cercare in una cartella

grep -rn "password" /etc/
grep -rl "TODO" ~/progetti
grep -r --include="*.php" "mysqli" .
grep -r --exclude-dir=".git" "chiave" .

Con le pipe

ps aux | grep nginx
dmesg | grep -i usb
journalctl -u ssh | grep "Failed"

Per evitare che grep trovi se stesso in ps aux:

ps aux | grep "[n]ginx"

Espressioni regolari

grep "^root" /etc/passwd
grep "bash$" /etc/passwd
grep -E "errore|warning" log.txt
grep -E "^[0-9]{3}-[0-9]{4}$" numeri.txt
grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" log.txt
SimboloSignificato
^Inizio riga
$Fine riga
.Un carattere qualsiasi
*Zero o più ripetizioni
[abc]Uno dei caratteri indicati

Con -E l'alternativa si scrive a|b.

Estrarre indirizzi IP da un log

grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" access.log | sort | uniq -c | sort -rn | head

Codice di uscita

grep restituisce 0 se trova qualcosa, 1 se non trova nulla. Utile negli script:

if grep -q "chiave" file.conf; then
  echo "trovata"
fi

Tag

amministrazione-di-sistemacomandilinux

Pagine che parlano di questa

Altre pubblicazioni in questa sezione

Suggerisci una correzione