GREP, acronimo di General Regular Expression Print, consente di effettuare una ricerca all'interno dell'output standard uno o più termini corrispondenti ad una stringa o a una espressione regolare, mostrandone i risultati. A seconda dei parametri passati, è possibile eseguire diversi tipi di ricerche e ottenere diverse rappresentazioni dei risultati trovati.
Vediamo insieme le opzioni più comuni e quelle più utili in questa breve guida
grep "pippo" pluto.txt
cerca il testo "pippo" nel file "pluto.txt"
grep "pippo" *.txt
cerca "pippo" in tutti i file con estensione ".txt"
grep -i "pippo" pluto.txt
cerca il termine "pippo" nel file pluto,txt ignorando le maiuscole/minuscole
grep -c "pippo" pluto.txt
conta il numero delle linee del file pluto.txt che contengono il termine "pippo"
grep -n "pippo" pluto.txt
mostra le righe del file pluto.txt contenenti il termine "pippo", precedute dal numero di riga
grep -r "pippo" .
cerca il termine "pippo" ricorsivamente in ogni file
grep -v "pippo" pluto.txt
mostra le linee del file pluto.txt che non contengono il termine "pippo"
grep -w "pippo"
cerca le linee che contengono il termine "pippo" come intera parola
grep "pippo*paperino" pluto.txt
mostra le linee del file pluto.txt che contengono entrambi i termini "pippo" e "paperino", dove "pippo" è scritto prima di "paperino"
grep -e "pippo" -e "paperino" pluto.txt
come il precedente, mostra le linee del file pluto.txt che contengono entrambi i termini "pippo" e "paperino", indifferentemente dalla posizione nella riga
grep -v -e "pippo" -e "paperino" pluto.txt
mostra le linee del file pluto.txt che non contengono nessuno dei due termini "pippo" e "paperino"
grep -E "pippo" pluto.log
abilita la ricerca per espressione regolare estesa cercando il termine "pippo" nel file pluto.txt
grep "[0-9]" pluto.txt
mostra tutte le line del file pluto.txt che contengono un qualsiasi numero
grep -E "A[a-z][A-Z]" pluto.txt
un altro esempio delle espressioni regolari, cerca nel filepluto.txt una parola che inizia per "A" maiuscola, seguita da un'altra lettera compresa tra "a" e "z" minuscola e termina con una terza lettera tra "A" e "Z" maiuscola, ad esempio "AiA" corrisponde ai criteri di ricerca, "AiiA" no.
grep -m 5 "pippo" pluto.txt
limita i risultati della ricerca del termine "pippo" nel file pluto.txt e ferma la ricerca dopo aver trovato la 5° occorrenza.
grep -A1 -B1 "pippo" pluto.txt
cerca nel file pippo.txt e mostra una riga prima ed una riga dopo la riga contenente il termine "pippo"
grep -C3 "pippo" pluto.txt
simile alla precedente, mostra 3 righe prima e 3 righe dopo la riga contente il termine "pippo" nel file pluto.txt
grep -x "zio paperone" pluto.txt
mostra la linea che corrisponde esattamente al termine "zio paperone"
grep -l "pippo" *
mostra la lista dei file che contengono il termine "pippo" al loro interno
grep "^pippo" pluto.txt
mostra tutte le righe del file pippo.txt che iniziano con il termine "pippo"
grep "paperone$" pluto.txt
mostra tutte le righe del file pluto.txt che finiscono con il termine "paperone"
grep -o "zi.*ne" pluto.txt
mostra le righe del file pluto.txt che iniziano per "zi" e finiscono per "ne", ad esempio "zio paperone"
grep --color "pippo" pluto.txt
mostra tutte le righe del file pluto.txt colorando il termine "pippo" per renderlo più evidente
grep -a "pippo" pluto.bin
cerca la stringa "pippo" nel file binario pluto.bin