Grep: recherche emails

Résolu
tlep Messages postés 597 Statut Membre -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

je patine (encore..) avec sed ou grep;
Je voudrais scruter le fichier de logs postfix; il est de ce type:

Aug 18 06:32:01 dev-apache postfix/local[26522]: D50031A983C: to=<www-data@dev-apache.vmf.headoffice.local>, orig_to=<www-dat
a>, relay=local, delay=0.04, delays=0.03/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")

Puis récupérer avec egrep l'email spécifié par to=<truc@email.com>

et évidemment j'y arrive po
:-))
Configuration: Windows XP
Firefox 2.0.0.6

8 réponses

  1. tlep Messages postés 597 Statut Membre 118
     
    J'ai bien trouvé çà:

    grep -Eo " to=<[^>]*" mes_logs

    mais ca me donne :
    to=<root@dev-apache.vmf.headoffice.local
    to=<www-data@dev-apache.vmf.headoffice.local

    et je voudrais exclure le " to=<" du coup pour n'avoir que l'email
    -1
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    grep -o "to=.*>" fichier
    ;-))
    -1
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Mince ça change tout ça ;-(((
    -1
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    grep -o "to=.*>" fichier | sed 's/.*<\(.*\)>/\1/'
    ;-))
    -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. tlep Messages postés 597 Statut Membre 118
     
    Marche po: y me zappe les "@" et je me retrouve avec :

    www-data
    au lieu de "www-data@dev-apache.vmf.headoffice.local"

    Du coup g fait :

    grep -Eo " to=<[^>]*"|sed 's/ to=<//g'

    :-)

    merci
    -1
  7. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Il zappe pas les "@", c'est juste que l'expression matche aussi le second "to=" mais qui commence par "orig_to=" ;-\

    Essaie comme ça alors :
    egrep -o "\bto=.*>" fichier | sed 's/.*<\(.*\)>/\1/'
    ;-))
    -1
  8. tlep Messages postés 597 Statut Membre 118
     
    Ben pareil: il s'arrête aux '@' :

    www-data
    root
    www-data

    Mais bon pas grave ca marche comme j'ai fait.
    -1
  9. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Bizarre ;-\
    $ cat plop
    
    Aug 18 06:32:01 dev-apache postfix/local[26522]
    : D50031A983C: to=<www-data@dev-apache.vmf.headoffice.local>,
    orig_to=<www-data>, relay=local, delay=0.04,
    delays=0.03/0.01/0/0.01, dsn=2.0.0,
    status=sent (delivered to command: procmail -a "$EXTENSION")
    
    $ egrep -o "\bto=.*>" plop | sed 's/.*<\(.*\)>/\1/'
    
    www-data@dev-apache.vmf.headoffice.local
    
    $ 
    Comme tu le dis si l'autre syntaxe marche bien... après tout puisqu'on a le choix ;-))
    -1