#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
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
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