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

big_smile
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