Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2104 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [SED/AWK] le corps d'un mail

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SED/AWK] le corps d'un mail

n°960257
3xc4l18ur
question = ( to ) ? be : ! be;
Posté le 23-01-2005 à 21:26:07  profilanswer
 

bah voila je cherche a lire le fichier mailBox, contenant plusieurs mails.
Je voudrais viré toutes les entetes, c'est a dire du premier "From" à apres "Date" pour ne  garder que les corps de messages...
 
Alors deux problemes:
1. Comment voir qu'on passe d'un mail a un autre... (je suis parti sur l'hypothese que le mail suivant repondait a la contrainte "ligne vide suivit d'un From" )
 
2. comment ne garder que les entetes ?
 
 
Je suis parti avec sed et ca donne ...
 
pour baliser un mail
marquerMail.sed

Code :
  1. #insertion avant le mail d'un '#-NewMSG-#'
  2. /From /i #NewMSG#
  3. #insertion apres le mail d'un '#-NewMSG-#'
  4. $ a #NewMSG#


 
pour garder le corps
garderCorpsMail.sed

Code :
  1. /From toto@;*/
  2. {
  3.         #traitement des entetes
  4.         :entete
  5.                 N
  6.                 #si pas longeur vide goto "entete"
  7.                 /\n$/!b entete
  8.        
  9.                 #supression de l'entete
  10.                 s:.*:: 
  11.         #traitement du message en lui meme
  12.         :corpsMsg
  13.                 N
  14.                 s:\n#-NewMSG-#::;t nextMsg
  15.                 b corpsMsg
  16.                
  17.         #traitement message suivant
  18.         :nextMsg
  19.         p
  20. }


 
le tout s'enchainant par  

Code :
  1. $> sed -f marquerMail.sed mbox | sed -f garderCorpsMail.sed | sed -e '/^$/d' > corpsMails


 
Mais ca ne marche pas terrible, vous auriez pas des idées ?
Merci

mood
Publicité
Posté le 23-01-2005 à 21:26:07  profilanswer
 

n°960350
3xc4l18ur
question = ( to ) ? be : ! be;
Posté le 23-01-2005 à 23:25:24  profilanswer
 

d'une facon extrement plus simple j'arrive a extraire le premier mail ... mais pas tous
 
sed -e '1,/^$/ d'
 
:/


Message édité par !cricri le 23-01-2005 à 23:25:59
n°960737
serimal
Posté le 24-01-2005 à 14:33:29  profilanswer
 

Bonjour
 
avec awk tu peux gérer un temoin d'affichage que tu desactive qd on detecte le chaine "commencant par From"
jusqu'a la detection de la chaine "commencant par Date"
 
tout ca pour dire ;-)) :
 
awk 'BEGIN{affiche=0;n=1;}
/^From/{print " ## Message " n++;affiche=0;}
/^Date/{affiche=1;next;}
affiche==1 {print;}'
 

n°961215
3xc4l18ur
question = ( to ) ? be : ! be;
Posté le 24-01-2005 à 20:52:59  profilanswer
 

lol
ok merci de tes lumieres :p


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [SED/AWK] le corps d'un mail

 

Sujets relatifs
fonction mail en localrenvoi sur adresse mail
Recherche Envoie mail par Formulaire Sans phpEnvoie d'un formlaire sur un mail > pb avec les pieces jointes
Envoie de mail via Lotus Notesmail() différent selon hébergeur !
Fonction MAIL marche plusawk (CSH) de deux fichiers en faire plus qu'un
Bidouille avec sedenvoie de mail
Plus de sujets relatifs à : [SED/AWK] le corps d'un mail


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR