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

le ricorrenze di qui OR quo OR qua in file.txt: grep -P 'qui|quo|qua' ./file.txt

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: del.icio.us Google Bookmarks Digg Facebook Technorati MySpace

martedì, luglio 14 2009
Taggato come Open source, Tips & Tricks, principianti, shell, sistema

Scritto da Ivan Agliardi







CHI E' L'AUTORE?