Appunti bash: estrarre indirizzi email da un file

Appunti bash: estrarre indirizzi email da un file

Vi è mai capitato di dover analizzare dei file di testo ed estrapolarne tutti gli indirizzi email? Beh, questo breve articolo è un promemoria che illustra un comando da una riga che sfrutta Grep, tool storico degli ambienti Unix/Linux, per compiere operazioni di questo tipo.

Grep è uno strumento molto potente che permette di manipolare con estrema facilità stringhe e flussi di testo da riga di comando o da script shell.

Vediamo il comando in azione. L'esempio ha come scopo l'estrazione di tutti gli indirizzi email presenti in un file di testo. Come output avremo una lista degli indirizzi, uno per riga.

cat nomedelfile | grep -Eio '([[:alnum:]_.-]+@[[:alnum:]_.-]+?\.[[:alpha:].]{2,6})'

Semplice vero?

Possiamo migliorare questo script aggiungendo ordinando l'elenco alfabeticamente ed eliminando i duplicati. Per farlo basta solo far passare l'output attraverso sort e uniq.

cat nomedelfile | grep -Eio '([[:alnum:]_.-]+@[[:alnum:]_.-]+?\.[[:alpha:].]{2,6})'| sort | uniq

Ricordate che questo è solo un esempio e ci sono un numero infinito di possibili varianti, anche usando strumenti diversi come Sed o AWK.

utile post, me lo segno, grazie :D

Invia nuovo commento
Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
Type the characters you see in this picture. (verifica audio)
Inserisci i caratteri e le cifre che leggi nell'immagine. Se non riesci a leggerle clicca "SALVA" e verrà generata una nuova immagine. Il codice non distingue tra maiuscole e minuscole.