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.

Loading