Come usare sapientemente (o quasi) i comandi Linux per estrapolare degli indirizzi e-mail da file di testo
Stamane avevo la necessità di ricavare degli indirizzi e-mail contenuti in circa 200 file senza estensione. All'inizio avevo pensato di fare tutto a mano ma poi ho pensato alla modularità dei comandi linux e mi sono messo all'opera ed in soli 5 minuti ho ottenuto le mie e-mail. Il trucco è semplice, basta usare in un terminale questi comandi:
cat: per visualizzare il contenuto di un file
grep: per filtrare del testo
sort: per ordinare del testo
uniq: per eliminare delle righe doppie
Tutti gli ingredienti vanno poi miscelati con delle pipe (operatore '|'), cioè un modo per mandare l'uscita di un comando all'ingresso di un altro. Infine il risultato va scritto su un file con l'operatore '>'. Procediamo:
cat * | grep @ | sort | uniq > ind_mail.txt
Il primo comando visualizza tutti i file, tramite la pipe passiamo al comando successivo 'grep', l'output prodotto. Quest'ultimo filtra il testo in ingresso selezionando le sole righe che contengono @ (gli indirizzi e-mail). L'output filtrato di grep viene passato a sort che ordina le righe alfabeticamente: in questo modo le e-mail uguali saranno su righe consecutive. Per finire passiamo il tutto al comando 'uniq' che cancella le righe duplicate (gli indirizzi di posta duplicati). Il tutto viene quindi scritto sul file ind_mail.txt.
Pubblicato Mercoledi 14 Novembre 2007 - 13:18 (letto 17202 volte) Stampa