Extraire les adresses mails d’un fichier en ligne de commande

Parfois les lignes de commandes sont sur 2 lignes au lieu d’une : Fésé gaffe !

Pour ce faire nous allons utiliser le programme Grep de recherche de chaînes de caractères. Voici la commande :

grep -Eio ‘([[:alnum:]_.-]+@[[:alnum:]_.-]+?\.[[:alpha:].]{2,6})’ mon_fichier.txt

Vous pouvez mettre le résultat dans un fichier text.txt comme ceci :

grep -Eio ‘([[:alnum:]_.-]+@[[:alnum:]_.-]+?\.[[:alpha:].]{2,6})’ mon_fichier.txt > text.txt

Le fichier dont je voulais extraire  les mails provenait du logiciel évolution. Dans ce fichier , beaucoup d’adresses étaient pour moi sans intérêts et une seule ligne se répétait constament :  » Email :exemple@truc.fr  » et c’est celle-ci qui m’intéressait. les autres je ne les voulais pas. J’ai donc préalablement utilisé la encore Grep pour retenir cette ligne uniquement :

grep ‘^Email:’ mon_fichier.txt > mon_fichier_de_sortie.txt

le caractère ^ indique « commence par » . Ainsi la commande se traduit par : Trouve toutes les lignes qui commencent par  » Email: » et inscrit le résultat dans mon_fichier_de_sortie.txt. Ensuite j’ai utilisé les commandes précédentes pour avoir un fichier sous la forme : ( une ligne = un mail )

blabla@gg.fr

toto@tutu.fr

Comptez le nombre de mails que vous avez extrait. Ici nous allons utiliser le programe « wc » word count:

wc -l mon_fichier.txt

Pour s’assurer qu’il n’y ait pas de doublons on va trier les adresses de notre fichier par ordre alphabétique avec « sort » et « uniq »:

sort mon_fichier.txt | uniq > mon_fichier_de_sortie.txt

Vous pourrez facilement importer votre fichier dans une base de donnée Mysql par exemple ! Plutôt bien non ? Ensuite si vous souhaitez envoyer beaucoup de mails d’un coup, optez pour un service en ligne comme  Emailsolar.