Magazine Humeur

Extraire des adresses emails de fichiers quelconques

Publié le 25 mars 2012 par Christophe_casalegno

Il arrive que nous ayons besoin d’extraire des adresses emails de fichiers quelconques. Lorsqu’il s’agit de fichiers texte, cette opération est relativement simple, mais lorsqu’il s’agit d’autres types de fichiers, cela oblige souvent à d’autres manipulations plus longues. Par exemple si nos adresses sont sur un vieux serveur sql qui ne fonctionne plus et sur lequel nous n’avons pas de fichier .sql, la tâche peut être longue ou alors on peut avoir ce besoin sans pour autant s’y connaître en SQL. Or le shell peut une fois de plus nous éviter pas mal de traquas grâce à la combinaison de 2 commandes : la commande strings et la commande grep.

La commande strings permet de sortir sur la console les caractères affichables d’un fichier ou d’un flux, et ce même lorsqu’il s’agit d’un fichier binaire par exemple.

La commande grep quant à elle s’utilise comme un filtre, elle permet d’afficher ou de ne pas afficher une chaînes de caractères déterminée ou encore une expression régulière.

C’est la combinaison de ces 2 commandes qui nous permet d’extraire ce dont nous avons besoin sans difficulté. Pour cela il suffit de lancer :

strings cheminversvotrebase/* |grep -Eio ‘([[:alnum:]_.-]+@[[:alnum:]_.-]+?\.[[:alpha:].]{2,6})’|sort -u

Cette commande va parser tous les fichiers de votre base MySQL et en extraire les emails, sans avoir à s’y connecter. Exemple :

strings /var/lib/mysql/mabase/* |grep -Eio ‘([[:alnum:]_.-]+@[[:alnum:]_.-]+?\.[[:alpha:].]{2,6})’|sort -u

J’ai également testé avec succès cette méthode sur des bases de données postgresql :

strings /var/lib/pgsql/data/base/19981/* grep -Eio ‘([[:alnum:]_.-]+@[[:alnum:]_.-]+?\.[[:alpha:].]{2,6})’|sort -u


Retour à La Une de Logo Paperblog

A propos de l’auteur


Christophe_casalegno 1903 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossier Paperblog

Magazines