Pages : 1
#1 Le 30/09/2008, à 14:38
- ChristopheCharron
[Résolu] Commande grep
Bonjour,
pour extraire des courriels d'une page, j'ai trouvé cette ligne de commande assez sympa.
wget -q -O - http://test03.christophe-charron.org/public/php/2008_09_30/2008_09_30_essais_courriels.html | grep -oe '\w*.\w*@\w*.\w*.\w\+'
Mais, il y a un problème d'encadrement des adresses et je ne manipule ni grep ni les expressions régulières et autres outils de cette puissance pour y arriver seul. Je récupère en effet l'espace précédent ou le ">" final, voire le <br> suivant l'adresse.
Comment l'améliorer pour qu'elle fonctionne, c'est à dire ne me renvoie que des chaînes de type "moipasbon_04@maison.com" depuis ma page de test (et sur d'autres) ?
Avez-vous des pistes à me donner ?
Cordialement
Dernière modification par ChristopheCharron (Le 02/10/2008, à 19:28)
Cordialement,
Christophe Charron
http://xsoftware.fr
Hors ligne
#2 Le 30/09/2008, à 15:49
- frafa
Re : [Résolu] Commande grep
lo
ce code devrait le faire...
wget -q -O - http://test03.christophe-charron.org/public/php/2008_09_30/2008_09_30_essais_courriels.html | grep -iEo '[a-z\.0-9\-\_]{1,}@[a-z0-9\-\_]*\.[a-z]{2,4}'
Hors ligne
#3 Le 30/09/2008, à 16:10
- ChristopheCharron
Re : [Résolu] Commande grep
Il le fait, il le fait. Merci infiniment.
Est-ce abuser que de demander une petite explication sur la grammaire de cette belle expression régulière ?
Cordialement,
Christophe Charron
http://xsoftware.fr
Hors ligne
#4 Le 30/09/2008, à 16:39
- frafa
Re : [Résolu] Commande grep
détail de la recherche:
[a-z\.0-9\-\_] #prendre si contiens a-z 0-9 - ou _
{1,} #afficher si resultat a plus de 1 caractere
@ #doit contenir @
[a-z0-9\-\_] #prendre si contiens a-z 0-9 - ou _
*\. #doit contenir un .
[a-z] #apres le point on limite les caracteres de a-z
{2,4} #limiter apres le point max entre 2 a 4 caracteres
Dernière modification par frafa (Le 30/09/2008, à 16:40)
Hors ligne
#5 Le 30/09/2008, à 17:10
- ChristopheCharron
Re : [Résolu] Commande grep
Dit comme cela, c'est quand même simple ...
Merci beaucoup
Cordialement,
Christophe Charron
http://xsoftware.fr
Hors ligne
#6 Le 02/10/2008, à 09:20
- ChristopheCharron
Re : [Résolu] Commande grep
Pardon de revenir à la charge mais 2 choses que je ne comprends pas :
- pourquoi les lettres majuscules sont prises en compte ? je pensais plus à
[a-zA-Z0-9\-\_]
pour qu'elles le soient
- le tiret n'a pas l'air d'être correctement interprété et je ne comprends pas pourquoi.
J'ai mis à jour la page d'exemple http://test03.christophe-charron.org/pu … riels.html avec les cas évoqués.
D'avance, merci pour ces éclaircissements.
Cordialement,
Christophe Charron
http://xsoftware.fr
Hors ligne
#7 Le 02/10/2008, à 16:50
- frafa
Re : [Résolu] Commande grep
comme ca ca devrait le faire...
grep -iEo '[a-z\.0-9_-]{1,}@[a-z0-9_-]*\.[a-z]{2,4}'
man grep ==>
-i, --ignore-case
Ignore case distinctions in both the PATTERN and the input files.
(-i is specified by POSIX.)
Dernière modification par frafa (Le 02/10/2008, à 16:55)
Hors ligne
#8 Le 02/10/2008, à 19:30
- ChristopheCharron
Re : [Résolu] Commande grep
Ca le fait, ça le fait ... même si je n'ai pas tout compris ...
Merci encore.
Cordialement,
Christophe Charron
http://xsoftware.fr
Hors ligne
Pages : 1