Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/06/2013, à 11:06

stephst84

trouver adresse mail en ligne de commande

Bonjour, à tous,
Comment puis je trouver des adresses mail sur disque dur externe ntfs contenu dans un répertoire, fichier avec les commandes find, grep, egrep ou dd ou en commande associée.

J'ai essayé ça :
find /mnt/windows grep [a-z0-9.A-Z_-]*@[a-z]*.[a-z]* -print > /home/user/Bureau/mail.txt

cela répertorie toute la partition dans le fichier en sortie mais sans m'extraire les adresses mail qui se trouve dans un des fichiers

j'ai testé avec dd + grep
dd if=/dev/sdb | hexdump -C | grep '[a-z0-9.A-Z_-]*@[a-z]*.[a-z]*' ('chaine de caratère')
cela liste en hexa mais comment exploiter.

Merci d'avoir lu et je ne sais pas si je suis dans la bonne section, éventuellement déplacé le sujet.

Hors ligne

#2 Le 26/06/2013, à 11:34

pingouinux

Re : trouver adresse mail en ligne de commande

Bonjour,
Voici une méthode :

shopt -s globstar
cd /mnt/windows
egrep -o -w '[a-z0-9.A-Z_-]+@[a-z]+\.[a-z]+' **/*

Hors ligne

#3 Le 26/06/2013, à 14:54

stephst84

Re : trouver adresse mail en ligne de commande

Merci pour la réponse
cela liste la recherche dans le mode console, j'avais essayé de faire une sortie dans un fichier, mais egrep prenait le début de l'option -print pour un complément d'info et cela me sortait un code erreur egrep

Hors ligne

#4 Le 26/06/2013, à 15:36

pingouinux

Re : trouver adresse mail en ligne de commande

Si tu veux utiliser find :

find /mnt/windows -exec egrep -oH -w '[a-z0-9.A-Z_-]+@[a-z]+\.[a-z]+' {} \;

et pour obtenir le résultat dans un fichier :

find /mnt/windows -exec egrep -oH -w '[a-z0-9.A-Z_-]+@[a-z]+\.[a-z]+' {} \; > /home/user/Bureau/mail.txt

Hors ligne

#5 Le 26/06/2013, à 15:58

stephst84

Re : trouver adresse mail en ligne de commande

j'ai essayé avec la commande egrep mais cela liste des noms avec des @ qui ne correspondent pas à adresses mail.
Par contre sous Win Xp avec la recherche fichiers cachés je trouve des répertoires qui ont des noms représentants des adresses mails.
bizarre
je viens de lancer la commande avec find et listing dans un fichier de sortie, j'attends le résult
Pour info le -exec de find sert à  quoi, exclusion de certains paramètres ou autres

Hors ligne

#6 Le 26/06/2013, à 16:03

stephst84

Re : trouver adresse mail en ligne de commande

par contre la commande find  répond
find: '-oH' : Aucun fichier ou dossier de ce type

Hors ligne

#7 Le 26/06/2013, à 16:09

pingouinux

Re : trouver adresse mail en ligne de commande

stephst84   #5 a écrit :

Pour info le -exec de find sert à  quoi, exclusion de certains paramètres ou autres

C'est pour exécuter la commande qui suit.
{} est remplacé par le nom de chaque fichier trouvé
\; indique la fin de la commande exécutée par -exec

Ce que je t'ai indiqué en #2 ou #4 permet de trouver les adresses mail qui sont dans les fichiers de l'arborescence, sous forme de texte, et non pas dans les noms de fichiers.

Hors ligne

#8 Le 26/06/2013, à 16:12

pingouinux

Re : trouver adresse mail en ligne de commande

stephst84   #6 a écrit :

par contre la commande find  répond
find: '-oH' : Aucun fichier ou dossier de ce type

-oH est un paramètre de grep (ou egrep), pas de find.
Quelle commande as-tu lancée exactement (copier-coller) ?

Dernière modification par pingouinux (Le 26/06/2013, à 16:15)

Hors ligne

#9 Le 26/06/2013, à 20:14

stephst84

Re : trouver adresse mail en ligne de commande

exact, j'ai réécris celle ci,
find /mnt/windows -exec egrep -oH -w '[a-z0-9.A-Z_-]+@[a-z]+\.[a-z]+' {} \; > /home/user/Bureau/mail.txt

Avec la commande que j'ai lancée ci-dessus, elle ne m'a trouvée aucune adresse mail qui sont dans les fichiers de l'arborescence, sous forme de texte.

Par contre il m'intéresserait de trouver les adresses qui nomment les fichiers et répertoires. avec quel genre de commande ? find  egrep exploité d'une autre façon
Es ce qu'une cmd à partir
dd if=/dev/sdb | hexdump -C | grep '[a-z0-9.A-Z_-]*@[a-z]*.[a-z]*' ('chaine de caratère')
me permettrait de trouver d'autres adresses mail

Hors ligne

#10 Le 26/06/2013, à 20:44

pingouinux

Re : trouver adresse mail en ligne de commande

Si j'ai bien compris (sinon, montre un exemple)

find /mnt/windows -iregex '.+/[a-z0-9._-]+@[a-z]+\.[a-z]+'

Hors ligne

#11 Le 26/06/2013, à 20:59

stephst84

Re : trouver adresse mail en ligne de commande

la dernière cmd va bien, je teste

Hors ligne

#12 Le 26/06/2013, à 21:21

stephst84

Re : trouver adresse mail en ligne de commande

ok, cela a fonctionné, je n'ai pas trouvé d'autres adresses mail, mais ce fut intéressant.d'utiliser ces cmd.
A titre d'info es ce que la cmd suivante pourrait me donner plus que celle utilisée
dd if=/dev/sdb | hexdump -C | grep '[a-z0-9.A-Z_-]*@[a-z]*.[a-z]*' ('chaine de caratère')
Et Merci pour le coup de main
A+ Steph

Hors ligne