|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre du Club
![]() Clément Technicien Réseaux & Télécommunications Inscription : décembre 2007 Messages : 148 ![]() |
Salut,
Je cherche à extraire des blocs de lignes se trouvant entre deux occurences. J'arrive bien à extraire un bloc, mais un seul. Exemple avec monfichier.txt : Code :
Code :
Cela m'affiche seulement : Code :
|
||||||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Salut,
Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() Clément Technicien Réseaux & Télécommunications Inscription : décembre 2007 Messages : 148 ![]() |
Quelle puissance
Merci pour cette contribution qui m'aide grandement. Le but de mon script est d'extraire est de mettre en forme le contenu d'un message imf (mail) capturé avec tshark (utilitaire wireshark en ligne de commande). A l'heure actuelle, la commande ressemble donc à ceci : Code :
cat imf.txt | sed -ne '/Address:/p' -ne '/^ *Subject:/p' -ne '/Line-based text data: text\/plain/,/Boundary: \\r\\n------=_NextPart/{//d;p}' | sed -e 's/\\r\\n//g' -e 's/^[ \t]*//' -ne '$a\\n\n--------------------FIN DU MAIL ------------------\n\n'
Code :
- Dans ce résultat il y a deux mails, et j'aurais souhaité mettre la chaine "--------------------FIN DU MAIL ------------------" à la fin de chacun d'eux. Or la tel que je l'ai mis dans ma commande, il ne s'affiche qu'à la fin de la lecture du fichier, il faudrait qu'il s'affiche juste après le filtre de l'expression que tu m'as donné. - Si on regarde bien, les messages sont des réponses à d'autres messages. Le corps du message (que j'ai extrait grace à ton aide), contient donc le sujet du message original. Or on voit qu'il apparait 2 fois, en effet j'ai l'impression que mon premier filtre qui me sort le sujet dans la lecture du flux, me le ressort dans le corps du message. Y a t-il possibilité de l'exclure ? - Bonus : Existe t-il une commande pour remettre en forme le charset, car la les accents et caractères spéciaux ne sont pas super lisibles !! Merci à vous !!!! |
||
|
|
00
|
|
|
#4 | |||||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Re-
Citation:
Code :
Citation:
![]() Citation:
Sinon dans ton code il y a quelques incohérences, du moins concernant tes explications et sans voir le fichier original. sed -ne '/Address:/p' -ne '/^ *Subject:/p' peut être regroupé sur une seule commande sed -ne '/Address:\|^ *Subject:/p'. /Boundary: \\r\\n------=_NextPart/ si le but est de matcher une ligne contenant "Boundary" suivi d'un retour chariot et d'une fin de ligne puis d'une ligne contenant "------=_NextPart" c'est loupé. sed doit d'abord ajouter (commande N) les lignes dans sa mémoire principale pour voir les éventuels retours chariot et fins de ligne et les traiter. Idem pour sed -e 's/\\r\\n//g'. Si tu ne charges pas avant tout le fichier dans la mémoire principale, cette commande n'a aucune incidence sur le fichier.
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|||||
|
|
00
|
|
|
#5 | ||||
|
Membre du Club
![]() Clément Technicien Réseaux & Télécommunications Inscription : décembre 2007 Messages : 148 ![]() |
Salut,
Oui je voulais être concis pour le début afin de partir de choses simples. J'ai un petit peu changé ma façon de procéder car l'autre commencait à devenir trop complexe, et comme tu l'as dis, comportait certaines fois des incohérences. Quel est le but ? Avec tshark (plugin de wireshark), je souhaite extraire d'un paquet IMF (mail) l'expéditeur, le destinataire, le sujet, et le corps du message afin des l'afficher dans la console. La commande suivante : Code :
tshark -i eth0 -R "text && data-text-lines && imf" -T fields -e imf.from -e imf.to -e imf.subject -e text Code :
=?ISO-8859-1?Q?Cl=E9ment_BONNAL?= <clement.bonnal@free.fr> =?ISO-8859-1?Q?Cl=E9ment_BONNAL?= <clement.bonnal@free.fr> Re: Sujet du mail No-Operation (NOP),No-Operation (NOP),Timestamps: TSval 176898, TSecr 2871147613,SEQ/ACK analysis,C: .,Preamble,First boundary: --------------060005050807010000020003\r\n,On 03/02/2012 15:45, clement wrote:\r\n,> On 03/02/2012 13:28, clement wrote:\r\n,>> On 03/02/2012 12:44, clement wrote:\r\n,>>> On 03/02/2012 12:37, Clément BONNAL wrote:\r\n,>>>>\r\n,>>>> ----- Original Message -----\r\n,>>>> *From:* Clément BONNAL\r\n,>>>> <mailto:clement.bonnal@iut-reseaux-telecoms.fr>\r\n,>>>> *To:* Clément BONNAL\r\n,>>>> <mailto:clement.bonnal@iut-reseaux-telecoms.fr>\r\n,>>>> *Sent:* Friday, February 03, 2012 10:50 AM\r\n,>>>> *Subject:* Re: Sujet du mail\r\n,>>>>\r\n,>>>> Mail 3\r\n,>>>>\r\n,>>>> ----- Original Message -----\r\n,>>>> *From:* Clément BONNAL\r\n,>>>> <mailto:clement.bonnal@iut-reseaux-telecoms.fr>\r\n,>>>> *To:* landry bremaud\r\n,>>>> <mailto:landry.bremaud@iut-reseaux-telecoms.fr>\r\n,>>>> *Sent:* Thursday, February 02, 2012 3:36 PM\r\n,>>>> *Subject:* Re: Sujet du mail\r\n,>>>>\r\n,>>>> Mail 2\r\n,>>>>\r\n,>>>> ----- Original Message -----\r\n,>>>> *From:* Clément BONNAL\r\n,>>>> <mailto:clement.bonnal@iut-reseaux-telecoms.fr>\r\n,>>>> *To:* landry bremaud\r\n,>>>> <mailto:landry.bremaud@iut-reseaux-telecoms.fr>\r\n,>>>> *Sent:* Thursday, February 02, 2012 3:31 PM\r\n,>>>> *Subject:* Sujet du mail\r\n,>>>>\r\n,>>>> Mail 1 \r\n,>>>>\r\n,>>>\r\n,>>\r\n,>\r\n,\r\n,Boundary: \r\n--------------060005050807010000020003\r\n,<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r\n,<html>\r\n, <head>\r\n, <meta content="text/html; charset=ISO-8859-1"\r\n, http-equiv="Content-Type">\r\n, </head>\r\n, <body bgcolor="#ffffff" text="#000000">\r\n, On 03/02/2012 15:45, clement wrote:\r\n, <blockquote cite="mid:4F2BF31E.9020706@iut-reseaux-telecoms.fr"\r\n, type="cite">\r\n, <meta content="text/html; charset=ISO-8859-1"\r\n, http-equiv="Content-Type">\r\n, On 03/02/2012 13:28, clement wrote:\r\n, <blockquote cite="mid:4F2BD2F2.4000700@iut-reseaux-telecoms.fr"\r\n, type="cite">\r\n, <meta content="text/html; charset=ISO-8859-1"\r\n, http-equiv="Content-Type">\r\n, On 03/02/2012 12:44, clement wrote:\r\n, <blockquote cite="mid:4F2BC8A7.8030103@iut-reseaux-telecoms.fr"\r\n, type="cite">\r\n, <meta content="text/html; charset=ISO-8859-1"\r\n, http-equiv="Content-Type">\r\n, On 03/02/2012 12:37, Clément BONNAL wrote:\r\n, <blockquote\r\n, cite="mid:86BDD62FBEC546E28765A257C939D3FF@NetbookRT1"\r\n, type="cite">\r\n, <meta content="text/html; charset=ISO-8859-1"\r\n, http-equiv="Content-Type">\r\n, <meta name="GENERATOR" content="MSHTML 8.00.6001.19170">\r\n, <style></style>\r\n, <div> </div>\r\n, <blockquote style="border-left: 2px solid rgb(0, 0, 0);\r\n, padding-left: 5px; padding-right: 0px; margin-left: 5px;\r\n, margin-right: 0px;" dir="ltr">\r\n, <div style="font: 10pt arial;">----- Original Message\r\n, ----- </div>\r\n, <div style="font: 10pt arial; background: none repeat\r\n, scroll 0% 0% rgb(228, 228, 228);"><b>From:</b> <a\r\n, moz-do-not-send="true"\r\n, title="clement.bonnal@iut-reseaux-telecoms.fr"\r\n, href="mailto:clement.bonnal@iut-reseaux-telecoms.fr">Clément\r\n,\r\n,\r\n,\r\n, BONNAL</a> </div>\r\n, <div style="font: 10pt arial;"><b>To:</b> <a\r\n, moz-do-not-send="true"\r\n, title="clement.bonnal@iut-reseaux-telecoms.fr"\r\n, href="mailto:clement.bonnal@iut-reseaux-telecoms.fr">Clément\r\n,\r\n,\r\n,\r\n, BONNAL</a> </div>\r\n, <div style="font: 10pt arial;"><b>Sent:</b> Friday,\r\n, February 03, 2012 10:50 AM</div>\r\n, <div style="font: 10pt arial;"><b>Subject:</b> Re: Sujet\r\n, du mail</div>\r\n, <div><br>\r\n, </div>\r\n, <div>Mail 3 <br>\r\n, </div>\r\n, <blockquote style="border-left: 2px solid rgb(0, 0, 0);\r\n, padding-left: 5px; padding-right: 0px; margin-left: 5px;\r\n, margin-right: 0px;" dir="ltr">\r\n, <div style="font: 10pt arial;">----- Original Message\r\n, ----- </div>\r\n, <div style="font: 10pt arial; background: none repeat\r\n, scroll 0% 0% rgb(228, 228, 228);"><b>From:</b> <a\r\n, moz-do-not-send="true"\r\n, title="clement.bonnal@iut-reseaux-telecoms.fr"\r\n, href="mailto:clement.bonnal@iut-reseaux-telecoms.fr">Clément\r\n,\r\n,\r\n,\r\n, BONNAL</a> </div>\r\n, <div style="font: 10pt arial;"><b>To:</b> <a\r\n, moz-do-not-send="true"\r\n, title="landry.bremaud@iut-reseaux-telecoms.fr"\r\n, href="mailto:landry.bremaud@iut-reseaux-telecoms.fr">landry\r\n,\r\n,\r\n,\r\n, bremaud</a> </div>\r\n, <div style="font: 10pt arial;"><b>Sent:</b> Thursday,\r\n, February 02, 2012 3:36 PM</div>\r\n, <div style="font: 10pt arial;"><b>Subject:</b> Re: Sujet\r\n, du mail</div>\r\n, <div><br>\r\n, </div>\r\n, <font size="2"><font face="Arial">Mail 2</font></font>\r\n, <blockquote style="border-left: 2px solid rgb(0, 0, 0);\r\n, padding-left: 5px; padding-right: 0px; margin-left:\r\n, 5px; margin-right: 0px;" dir="ltr">\r\n, <div style="font: 10pt arial;">----- Original Message\r\n, ----- </div>\r\n, <div style="font: 10pt arial; background: none repeat\r\n, scroll 0% 0% rgb(228, 228, 228);"><b>From:</b> <a\r\n, moz-do-not-send="true"\r\n, title="clement.bonnal@iut-reseaux-telecoms.fr"\r\n, href="mailto:clement.bonnal@iut-reseaux-telecoms.fr">Clément\r\n,\r\n,\r\n,\r\n, BONNAL</a> </div>\r\n, <div style="font: 10pt arial;"><b>To:</b> <a\r\n, moz-do-not-send="true"\r\n, title="landry.bremaud@iut-reseaux-telecoms.fr"\r\n, href="mailto:landry.bremaud@iut-reseaux-telecoms.fr">landry\r\n,\r\n,\r\n,\r\n, bremaud</a> </div>\r\n, <div style="font: 10pt arial;"><b>Sent:</b> Thursday,\r\n, February 02, 2012 3:31 PM</div>\r\n, <div style="font: 10pt arial;"><b>Subject:</b> Sujet\r\n, du mail</div>\r\n, <div><br>\r\n, </div>\r\n, <font size="2"><font face="Arial">Mail 1</font></font>\r\n, </blockquote>\r\n, </blockquote>\r\n, </blockquote>\r\n, </blockquote>\r\n, <br>\r\n, </blockquote>\r\n, <br>\r\n, </blockquote>\r\n, <br>\r\n, </blockquote>\r\n, <br>\r\n, </body>\r\n,</html>\r\n,Last boundary: \r\n--------------060005050807010000020003--\r\n La commande suivante le fait très bien : Code :
tshark -i eth0 -R "text && data-text-lines && imf" -T fields -e imf.from -e imf.to -e imf.subject -e text | sed -e 's/<html>.*<\/html>//g' Code :
=?ISO-8859-1?Q?Cl=E9ment_BONNAL?= <clement.bonnal@free.fr> =?ISO-8859-1?Q?Cl=E9ment_BONNAL?= <clement.bonnal@free.fr> Re: Sujet du mail No-Operation (NOP),No-Operation (NOP),Timestamps: TSval 256057, TSecr 2871939211,SEQ/ACK analysis,C: .,Preamble,First boundary: --------------010801040601080202040408\r\n,On 03/02/2012 18:48, Cl�ment BONNAL wrote:\r\n,> On 03/02/2012 15:45, clement wrote:\r\n,>> On 03/02/2012 13:28, clement wrote:\r\n,>>> On 03/02/2012 12:44, clement wrote:\r\n,>>>> On 03/02/2012 12:37, Cl�ment BONNAL wrote:\r\n,>>>>>\r\n,>>>>> ----- Original Message -----\r\n,>>>>> *From:* Cl�ment BONNAL\r\n,>>>>> <mailto:clement.bonnal@iut-reseaux-telecoms.fr>\r\n,>>>>> *To:* Cl�ment BONNAL\r\n,>>>>> <mailto:clement.bonnal@iut-reseaux-telecoms.fr>\r\n,>>>>> *Sent:* Friday, February 03, 2012 10:50 AM\r\n,>>>>> *Subject:* Re: Sujet du mail\r\n,>>>>>\r\n,>>>>> Mail 3\r\n,>>>>>\r\n,>>>>> ----- Original Message -----\r\n,>>>>> *From:* Cl�ment BONNAL\r\n,>>>>> <mailto:clement.bonnal@iut-reseaux-telecoms.fr>\r\n,>>>>> *To:* landry bremaud\r\n,>>>>> <mailto:landry.bremaud@iut-reseaux-telecoms.fr>\r\n,>>>>> *Sent:* Thursday, February 02, 2012 3:36 PM\r\n,>>>>> *Subject:* Re: Sujet du mail\r\n,>>>>>\r\n,>>>>> Mail 2\r\n,>>>>>\r\n,>>>>> ----- Original Message -----\r\n,>>>>> *From:* Cl�ment BONNAL\r\n,>>>>> <mailto:clement.bonnal@iut-reseaux-telecoms.fr>\r\n,>>>>> *To:* landry bremaud\r\n,>>>>> <mailto:landry.bremaud@iut-reseaux-telecoms.fr>\r\n,>>>>> *Sent:* Thursday, February 02, 2012 3:31 PM\r\n,>>>>> *Subject:* Sujet du mail\r\n,>>>>>\r\n,>>>>> Mail 1 \r\n,>>>>>\r\n,>>>>\r\n,>>>\r\n,>>\r\n,>\r\n,\r\n,Boundary: \r\n--------------010801040601080202040408\r\n,<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r\n,\r\n,Last boundary: \r\n--------------010801040601080202040408--\r\n Code :
tshark -i eth0 -R "text && data-text-lines && imf" -T fields -e imf.from -e imf.to -e imf.subject -e text | sed -e 's/<html>.*<\/html>//g' -e 's/\\r\\n,/\n/g' -e 's/\t/\n/g' Code :
Il me reste quelques lignes parasites qui ont toujours la même chaine de départ. Il me faudrait donc supprimer les lignes suivantes (trouvables car elles commencent toujours par la même séquence : Code :
Et merci de m'avoir lu |
||||
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Clément Technicien Réseaux & Télécommunications Inscription : décembre 2007 Messages : 148 ![]() |
Si je rajoute un pipe à ma commande précédente avec :
Code :
| sed -e '/^No-Operation (NOP)/d' -e '/^Boundary/d' -e '/^<!DOCTYPE HTML/d' -e '/^Last boundary/d' Le problème avec ca, c'est que vu que je lis des paquets arrivant sur mon interface grace à tshark, et bien j'ai un retard de plusieurs messages à chaque fois (je suis obligé d'envoyer 3 mails avant de pouvoir lire le 1er correctement déchiffré sur ma console...) Déjà rien qu'avec le pipe précédent, je devais envoyer un deuxième mail avant de voir apparaitre le 1er... Une dernière petite aide serait la bienvenue Merci! |
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
00
|
|
|
#8 | ||
|
Membre du Club
![]() Clément Technicien Réseaux & Télécommunications Inscription : décembre 2007 Messages : 148 ![]() |
Merci beaucoup zipe31,
Ca marche très bien pour le mail en question ! Par contre pour un mail simple qui ne contient pas de html, tel que celui-ci : Code :
=?ISO-8859-1?Q?Cl=E9ment_BONNAL?= <clement.bonnal@free.fr> =?ISO-8859-1?Q?Cl=E9ment_BONNAL?= <clement.bonnal@free.fr> Re: Sujet du mail No-Operation (NOP),No-Operation (NOP),Timestamps: TSval 453687, TSecr 2938897604,SEQ/ACK analysis,C: .,Premiere ligne d'un mail sans html\r\n,Deuxieme ligne du mail\r\n Code :
Code :
No-Operation (NOP),No-Operation (NOP),Timestamps: TSval 462274, TSecr 2938983479,SEQ/ACK analysis,C: .,Premiere ligne d'un mail sans html Encore une fois merci à toi, ton aide m'est précieuse! |
||
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Je pense que le plus simple est de rester sur ton idée dans ton message #6 en rajoutant un "pipe" pour éliminer les lignes superflues
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Quoi que...
Essaie comme ça : Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Clément Technicien Réseaux & Télécommunications Inscription : décembre 2007 Messages : 148 ![]() |
Effectivement, vu que mon problème de temps réel est réglé je peux utiliser les pipes.
Merci énormément pour ton aide, tu m'as bien aidé à avancer dans mon projet ! |
|
|
00
|
|
|
#12 | ||||
|
Membre du Club
![]() Clément Technicien Réseaux & Télécommunications Inscription : décembre 2007 Messages : 148 ![]() |
Pour ta dernière commande ca marche plutot pas mal.
Je n'ai aucune erreur dans les mails HTML. Par contre à l'envoi d'un mail texte j'ai ce résultat : Code :
Code :
Pour les pipes finalement même si c'est en temps réel, le deuxième pipe fait tout foirer je n'ai même plus de filtrage html ! |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com