Grep: recherche emails

Résolu
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. Modérateur
    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. Ben pareil: il s'arrête aux '@' :

      www-data
      root
      www-data

      Mais bon pas grave ca marche comme j'ai fait.
      1. Modérateur
        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. 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. Modérateur
            grep -o "to=.*>" fichier | sed 's/.*<\(.*\)>/\1/'
            ;-))
            1. 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