grep è un utilissimo comando da utilizzare a terminale per cercare stringhe di testo all’interno di file, il default è quello di stampare tutte le righe che contengono la stringa data.
Esempi:
grep parola file -> stampa tutte le righe del file che contengono parola.
cat file1 | grep parola
comando unix |grep parola
Ecco alcune opzioni:
-i incasesensitive, ovvero cerca la parola sia in minuscolo che maiuscolo (o mix dei due)
grep -i roma file -> ottieni come output roma, Roma ma anche ROmA
-l lista solo il nome dei file che contengono la stringa indicata, e non le linee
grep -l nomemiaclasse *.css -> ottieni la lsita di tutti i file css che contengono la mia classe
-r ricorsivo, ovvero cerca nell’attuale percorso ed anche in tutte le sottodirectory
grep -r “192.168.0.1” /etc/ -> cerca in /etc/ tutte le occorrenze dell’ip dato.
-v modo inverso, ovvero stampa tutte le righe che NON contengono la stringa data
grep -v “spam” /var/spool/mail -> stampa tutte le righe che non contengono la stringa spam
Pipe con altri comandi
Come detto grep si può utilizzare dopo altri programmi per visualizzare solo una certa parte dell’output
Visualizza come sono stati visti i dischi al boot dal kernel:
dmesg|grep -i ” sd”
Visualizza fra tutti i processo solo quelli di firefox
ps -ef |grep -i firefox
Questi sono alcuni piccoli esempi, grep è un comando molto versatile utilizzabile combinato con altri comandi per personalizzare l’output, il mio consiglio è di fare qualche test, una volta conosciuto vedrete che è insostituibile.
Popular Posts:
- None Found
Just a small correction. The option -L presents the files “that do not contain” the given strain. The lowercase -l actually gives the result indicated in the example.
Thank you Carlos, post fixed.
Hey nice tutorial and excellent blog but the article is in italian although the language flag is set to English. Do you have the article translated? I believe your articles and howtos are awesome and grep is on of the most powerful commands that I know of but I find it very difficult.
Thanks and hope you can update it 😀
Thanks for the comment Rafalgar.
I’ve restored the English version of this post.