Ti trovi qui : Open-source » Grep parade!
Grep parade!
Uno dei comandi più utilizzati quando si amministra un server UNIX o Linux da linea di comando è senza dubbio `grep`. Per chi non lo conoscesse, mi limito a dire che si tratta di uno script efficiente e flessibilissimo in grado di individuare espressioni regolari all’interno di un file o di un output testuale. Il nome del comando è infatti acronimo di “global regular-expression print”. Tutto il resto lo trovate con il solito `man grep`. Per chi invece usa abitualmente grep per i task di amministrazione di ogni giorno, raccolgo qui una serie di esempi d’uso un po’ più evoluti e – magari – insoliti. Potrebbero essere utili a voi come lo sono stati a me in numerose occasioni.
Trova le ricorrenze della sequenza qui, quo AND qua in file.txt: grep "qui.*quo.*qua" ./file.txt
Trova
Verifica che un indirizzo email sia formattato correttamente: echo "info@test.eu" | grep -Ei '\b[a-z0-9]{1,}@*\.(it|eu|com|net|org|tv)\b'
Trova la parola qua in modalità case in-sensitive in ./file.txt: grep -iw "is" demo_file
Trova gli indirizzi email in test.txt formattati come <qwerty.qwerty@qwerty.com> e rimuove i caratteri di enclosure (< e >): grep -o '<.*@.*\.*>' ./test.txt | tr -d '<>'
Trova le ricorrenze multiple di qui OR quo OR qua in una stringa di testo: echo -e "1) qui quo qua\n2) quo qui qua\n3)qui quo qui\n4) qua quo qui\n" | grep -E '(qui|quo|qua).*\1'
Verifica se la stringa passata mediante pipe sia un indirizzo IP o meno (provate passando un indirizzo IP mal formato): echo "192.168.123.123" | grep -E '\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b'
Mostra tutte le righe dell’httpd.conf omettendo le istruzioni commentate: grep -v -E '^\#|^$' /etc/apache2/httpd.conf
Supponendo che lo script test.sh contenga le seguenti istruzioni:
#!/bin/bash contatore=1 until [ $contatore -gt 10 ]; do echo contatore $contatore let contatore+=1 done
… il comando che segue individua la riga 4 e le 3 righe che seguono:
./test.sh | grep -A 3 -i "contatore 4"
… il comando che segue individua invece tutte le righe tranne quelle contenenti il 4 e il 6:
./test.sh | grep -v -e "4" -e "6"
Il sito Internet ufficiale del progetto grep si trova all’indirizzo http://gnu.org/software/grep/.
Condividi:
martedì, luglio 14 2009
Taggato come Open source, Tips & Tricks, principianti, shell, sistema
Scritto da Ivan Agliardi

























































