#1 Le 11/01/2008, à 22:42
- alt.G
Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
Le sujet du topic à quelque peu evolué, ci dessous le post original sur la cission d'un fichier texte en fonction de sont contenu, cependant j'ai contourné le probleme et maintenant je cherche comment passer d'un fichier declaré en uft-8 a un fichier declaré en ASCII.
Bonjour,
Situation:
Suite a une erreur de manip, il y a quelque temps, avec backup de mes mails, j'ai ecrasser mon dossier bak des mails thunderbird avec un dossier vierge provenant une reinstallation toute fraiche.
Sur le moment j'ai bien ragé ... puis j'ai essayé de reagir vite: limitation de l'utilisation de la partition /home afin d'essayé d'en recuperer le max de donnée.
A l'aide de tutos et de quelque programme de recuperation en ligne de commande j'ai reussi a extraire des donnée de ma partition sous la forme d'un tas de ptit fichier .txt ou .html de quelque 10aine de Ko.
Me demandez pas ce que j'ai utilisé, je ne m'en souvient plus ca fait maintenant trop longtemps et c'etait a chaud sous le stress juste apres mon gaffe donc j'en ai plus aucune idée.J'ai conservé cet amas de fichier .txt en me disant que je pourrai surement en faire quelque chose un jour en enfin retrouver mes mails les plus important ainsi que les adresse de mes contacts les plus importantes.
Cepandant je ne peux pas le faire a la main !!!!
Aujourd'hui je me relance dans la traitement de ce ptit bordel, j'ai deja bien trier les fichiers qui contiennent des données de mes mails grace à l'outils de recherche de kate, j'ai aussi concatené tout ces petit fichiers en plusieur gros grace a un petit
cat *.txt > grosfichier.txt
Et je sais retrouver mes mails dans ces fichiers.
Il commence parFrom -
Ce que je cherche a faire:
Je souhaite donc decouper mon grosfichier.txt en plusieur petit, chacun contenant 1 mail, afin de les renommé en .eml pour pouvoir le importer dans Thunderbird.
Je souhaite donc trouver/modifier/ecrire un script qui pourra scinder mon grosfichier.txt avant chaque occurence
From -
Si vous avez ca ... ou des idées je suis preneur !!!
Je me suis bien interressé a la commande
split
mais je ne crois pas qu'elle peut faire l'affaire pour mon soucis !!!
Dernière modification par alt.G (Le 12/01/2008, à 00:06)
Hors ligne
#2 Le 11/01/2008, à 23:46
- best_friend_fr
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
Salut
Je crois que tu ne peux pas faire trop autrement qu'une boucle qui parcourt ton fichier, et change le fichier de sortie quand il trouve From -
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#3 Le 12/01/2008, à 00:00
- alt.G
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
Merci best_friend_fr,
Mais en fait je suis un quiche en programmation et il me faudrais pas mal d'aide .. voir des exemple !!!
Mais en fait, j'ai plus vraiment besoin de ca, car les fichiers ou sont sauvegardé les mail dans thunderbird contienne en fait tout les mail les un apres les autres dans un fichier txt. donc suffit que je colle mon fichier de recupération nettoyé de ce qui n'est pas des mails et thunderbird me les importes tous !!
Cependant j'ai un autre soucis relatif au l'encodage.
En effet mon grosfichier.txt de recup est declaré en utf-8 hors les fichiers de mails de thunderbird sont en ASCII, biensur j'ai un probleme avec les caractere accentué.
Comment modifier la daclaration de mon grosfichier.txt en ASCII pour que thunderbird me l'interprete nikel ???
Hors ligne
#4 Le 12/01/2008, à 00:02
- Sysko le prospecteur
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
donc à présent tu a juste besoin d'un script / programme qui remplace le codage en UTF-8 par de l'ASCII c'est cela ?
EDIT : il semblerait qu'en python il y ait une fonction toute simple transformant de l'UTF8 en ASCII
mais à près ne connaissant pas du tout mais alors pas du tout ce langage je ne pourrais pas t'aider mais bon c'est toujours une piste
Dernière modification par Sysko le prospecteur (Le 12/01/2008, à 00:11)
Projet tatoeba : projet collaboratif visant à créer un corpus de phrases d'exemples traduites dans le plus de langues possibles
Hors ligne
#5 Le 12/01/2008, à 00:10
- alt.G
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
Oui Sysko c'est a peu pres ca.
Mais en fait je sais pas vraiment comment il est encodé jusque qu'il est declaré en utf-8 et que lorsque je l'ouvre avec Kate, il ne sais pas m'affiché les caractere accentué.
Et que lorsque je l'importe dans firefox, non plus !!!
Je vous fait un ptit topo de la situation dans 5 min.
Hors ligne
#6 Le 12/01/2008, à 00:13
- Sysko le prospecteur
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
j'ai édité mon message donc ptêt qu'en demandant gentiment sur un forum de python's users quelqu'un pourra te pondre un petit code qui va bien ( car je ne pense pas que ce soit difficile pour quelqu'un utilisant ce langage assez souvent )
Projet tatoeba : projet collaboratif visant à créer un corpus de phrases d'exemples traduites dans le plus de langues possibles
Hors ligne
#7 Le 12/01/2008, à 00:16
- Yannick_LM
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
Hop :
#!/bin/bash
i=0
while read ligne ; do
echo $ligne | grep From > /dev/null
[[ $? -eq 0 ]] && let "i++"
echo $ligne >> /tmp/mail$i.utf8
done < grosFichier.txt
for mail in /tmp/mail* ; do
FILENAME=`basename $mail .utf8`
iconv $mail -f UTF-8 -t ASCII > "$FILENAME.eml"
done
#rm -f /tmp/mail*
Pour la conversion de caractères, tu peux te pencher sur iconv.
EDIT : Il y a un souci cependant : certains caractères français n'ont pas d'équivalent en ASCII, et donc la conversion est impossible.
Comme je n'utilise pas Thunderbird, je ne peux pas t'en dire plus. Es-tu sûr que les fichiers .eml sont en ASCII ?
Si c'est bien le cas, ils doivent faire quelque chose pour les accents, mais il nous faudrait plus d'informations pour t'aider.
EDIT2 : le script ne fonctionne pas en l'état ! (et c'est normal)
Dernière modification par Yannick_LM (Le 12/01/2008, à 01:44)
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#8 Le 12/01/2008, à 00:30
- alt.G
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
TOPO
Voici le topo
Les fichiers dans lequel sont stocké les mails dans Thunderbird sont de ce type:
fichier: Inbox
From - Fri Oct 12 17:32:33 2007
X-Account-Key: XXXXXXXXXXXXXXX
X-UIDL: XXXXXXXXXXXXXXX
X-Mozilla-Status: 0011
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:
Return-Path: <XXXXXXXXXXXXXXX>
Delivered-To: XXXXXXXXXXXXXXX
Received: XXXXXXXXXXXXXXX; 12 Oct 2007 08:46:42 -0000
Received: XXXXXXXXXXXXXXX; 12 Oct 2007 08:46:42 -0000
Received: from XXXXXXXXXXXXXXX; 12 Oct 2007 01:29:15 -0700
Message-ID: XXXXXXXXXXXXXXX
Return-Path: XXXXXXXXXXXXXXX
X-Originating-IP: XXXXXXXXXXXXXXX
From: XXXXXXXXXXXXXXX
To: XXXXXXXXXXXXXXX
Subject: RE: Mailing List XXXXXXXXXXXXXXX
Date: Fri, 12 Oct 2007 10:29:15 +0200
Importance: Normal
In-Reply-To: XXXXXXXXXXXXXXX
References: XXXXXXXXXXXXXXX
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginalArrivalTime: 12 Oct 2007 08:29:15.0477 (UTC) FILETIME=[F97CC850:01C80CA9]
Salut XXXXXXXXXXXXXXXX
D=E9sol=E9 pour le couac, XXXXXXXXXXXXXXXX mal =E0 comprendre ce qui =E9tait ecrit.
Bon week end =E0 toi,
XXXXXXXXXXXXXXX.
From - Fri Jan 11 19:36:04 2008
X-Account-Key: XXXXXXXXXXXX
X-UIDL: XXXXXXXXXXXXXXXXXXXX
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:
Return-Path: <XXXXXXXXXXXXXXXXXXX>
Delivered-To: XXXXXXXXXXXXXXXXXXX
Received: XXXXXXXXXXXX; 11 Jan 2008 17:02:56 -0000
Received: from XXXXXXXXXXXXXXXXX
Received: from XXXXXXXXXXXXXXXXXXXXXXX
Fri, 11 Jan 2008 09:02:30 -0800
Message-ID: <BAY123-W2543550B2D6FF06076B665814B0@phx.gbl>
Return-Path: XXXXXXXXXXXXXXXXXXXXX
X-Originating-IP: [XXXXXXXXXXXXXXXX]
From: XXXXXXXXXXXXXX
To: XXXXXXXXXXXXXXXX
Subject: XXXXXXXXXXXXXXXXXXXX
Date: Fri, 11 Jan 2008 18:02:30 +0100
Importance: Normal
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginalArrivalTime: 11 Jan 2008 17:02:30.0352 (UTC) FILETIME=[C0410D00:01C85473]
Salut =E0 tous,=20
Vous trouverez ci-joint XXXXXXXXXXXXXXX sur lequel vous pour=
rez XXXXXXXXXXXX d'=E9tude.
Le document est au 1/100 000.=20
Conservez XXXXXXXXXXXXXXXX moiti=E9 XXXXXXXXXXXXXXXXX ensemble.
A+,=20
XXXXXXXXXXX.
$ file Inbox
Inbox: ASCII mail text
Les fichiers de recup que j'ai reussi a produire sont de ce type:
Fichier: Recup
From - Tue Sep 05 19:18:04 2006
X-Account-Key: XXXXXXXXXXXXXXXXXXXXXXXX
X-UIDL: XXXXXXXXXXXXXXXXXXXXXXXX
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: <XXXXXXXXXXXXXXXXXXXXXXXX>
Delivered-To: XXXXXXXXXXXXXXXXXXXXXXXX
Received: XXXXXXXXXXXXXXXXXXXXXXXX; 5 Sep 2006 08:51:55 -0000
Received: from XXXXXXXXXXXXXXXXXXXXXXXX; 5 Sep 2006 08:51:55 -0000
Received: by XXXXXXXXXXXXXXXXXXXXXXXX; Tue, 5 Sep 2006 10:51:55 +0200 (CEST)
To: XXXXXXXXXXXXXXXXXXXXXXXX
Subject: XXXXXXXXXXXXXXXXXXXXXXXX
From: XXXXXXXXXXXXXXXXXXXXXXXX
X-Mailer: PHP/4.4.4
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
Reply-To: XXXXXXXXXXXXXXXXXXXXXXXX
Message-Id: <XXXXXXXXXXXXXXXXXXXXXXXX>
Date: Tue, 5 Sep 2006 10:51:55 +0200 (CEST)
XXXXXXXXXXXXXXXXXXXXXXXX
-------------------------------------------------------------------
Cher Madame,Monsieur XXXXXXXXXXXXXXXXXXXXXXXX,
This note has been added XXXXXXXXXXXXXXXXXXXXXXXX
--------------------------
N� commande XXXXXXXXXXXXXXXXXXXXXXXX
Date de commande XXXXXXXXXXXXXXXXXXXXXXXX
Date de saisie XXXXXXXXXXXXXXXXXXXXXXXX
Heure de saisie XXXXXXXXXXXXXXXXXXXXXXXX
Titre XXXXXXXXXXXXXXXXXXXXXXXX
---------------------------
Information XXXXXXXXXXXXXXXXXXXXXXXX
Bonjour,
Nous avons le plaisir de vous informer que votre derni�re commande a �t� exp�di�e XXXXXXXXXXXXXXXXXXXXXXXX
Pour en conna�tre sa situation, d�ici 12 � 24h, XXXXXXXXXXXXXXXXXXXXXXXX Les colis n\'ayant pu �tre livr�s � domicile pour absence seront � votre disposition pendant 15 jours aupr�s de votre bureau de poste ou centre de distribution ; au del�, ils nous seront retourn�s. Pour une 2eme exp�dition les frais sont a votre charge.
Nous vous remercions et restons � votre disposition.
$ file recup
recup: UTF-8 Unicode HTML document text, with very long lines
Il faut que j'arrive a faire correspondre l'encodage et la declaration d'encodage du fichier comme dans le premier fichier pour que thunderbird me l'interprete correctement !!!
J'ai pas reussi a lire mon fichier en ASCII avec Kate !!!
Hors ligne
#9 Le 12/01/2008, à 00:35
- alt.G
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
Pendant que je vous faisais un topo vous m'avez proposer pas mal de truc je m'en vais tester ton script Yannick_LM, je vois qu'il utilise iconv comme me le conseille Sysko.
J'ai l'impression que tu as repondu au 2 probleme simultanement Yannick_LM .. je vous en donne des nouvelles en attendant, j'espere que vous apprehenderais mieux mon pb avec mes explication du post precedant !!!
Hors ligne
#10 Le 12/01/2008, à 00:45
- alt.G
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
Je suis sur le chan #kubuntu-fr, pendant que je test tout ca ...
Si vous voulez m'aider vous m'y trouverez nick: altg
Hors ligne
#11 Le 12/01/2008, à 00:49
- Yannick_LM
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
@ alt.G :
Humm.. J'ai peur qu'on soit en train de réinventer la roue.
Le fichier que tu décris m'a tout l'air d'être un bête fichier au format .mbox, qui est l'extension de fichier (libre), utilisée par Thunderbird :
http://en.wikipedia.org/wiki/Mbox
http://www.mozilla.org/support/thunderbird/faq#export
En tout cas, le format .eml est le format de fichier propriétaire utilisé par Outloock (lisible par Thunderbird, et effectivement en ASCII)
Ca me semble pas une bonne idée de refaire la conversion de format à la main.
En fait, l'encodage est déclaré à l'interieur du fichier mbox :
Content-Type: text/plain; charset=iso-8859-1
Voilà , à voir si le fichier est lisible directement par Thunderbird. (auquel cas, c'est gagné).
A ta place, j'essaierai de suivre la procédure décrite dans la FAQ de mozilla.
Sinon, un script qui lirait les lignes charset= pour effectuer la bonne conversion est pas trop compliqué à faire, mais plus long et , espérons-le, inutile.
EDIT :je serai sur le chan d'ici peu.
Dernière modification par Yannick_LM (Le 12/01/2008, à 00:50)
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#12 Le 12/01/2008, à 00:52
- alt.G
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
@ Yannick_LM à priori ton script decoupe bien mon grosfichier.txt en plusieur a partir de chaque occurence "from", cependant tu verra que dans la structure du fichier il ya souvent plusieur fois "from" dans le code d'un mail.
La chaine du debut de mail est :
From - [DATE]
biensur la date change mais le "From - " ne chage jamais et toujours avec la meme casse (F majuscule au debut).
Comment modifier ton script pour prendre ca en compte ??
Pour l'instant ton script a extrait plus de 700 fichiers dans /tmp/ et n'as pas encore commencé a les reencodé ... je testerai avec les premier fichier reencodé en ASCII en les concatenant (du au bug du script si dessus) pour voir si thunderbird les importes bien !!!
Parcontre j'ai oublié de verif si j'ai iconv oups !!! le script es lancé et ya du taf ...
Dernière modification par alt.G (Le 12/01/2008, à 00:56)
Hors ligne
#13 Le 12/01/2008, à 00:56
- Sysko le prospecteur
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
c'est Yannick qui à proposer iconv ( rendons à césar ....)
Projet tatoeba : projet collaboratif visant à créer un corpus de phrases d'exemples traduites dans le plus de langues possibles
Hors ligne
#14 Le 12/01/2008, à 00:57
- Yannick_LM
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
Ben, en changeant From par From -.
Mais je voudrais bien savoir si la solution d'essayer de faire comme si tu voulais exporter tes mails fonctionne. (voir #11)
Bon, maintenant que le script tourne, laissons-le.
Dernière modification par Yannick_LM (Le 12/01/2008, à 00:59)
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#15 Le 12/01/2008, à 01:24
- alt.G
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
c'est Yannick qui à proposer iconv ( rendons à césar ....)
Oui possible, j'essaye de gerer ce qu'on me propose sur le fofo en meme temps qu'une recherche perso sur le net et je test des truc en local alors possible que je m'embrouille un peu.
Yannick m'aide sur le chan #kubuntu-fr ... merci beaucoup a lui !!!
Hors ligne
#16 Le 12/01/2008, à 02:17
- alt.G
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
Yannick si tu passe par la,
Tout d'abord merci de ton aide!!!
ensuite regarde cela :http://fr.wikipedia.org/wiki/Mbox
est un format de stockage de courriel couramment utilisé. Il repose sur les trois principes suivants :
* attribuer un fichier à chaque dossier (au lieu d'un fichier par message, ou d'un répertoire par dossier) ;
* tout coder en ASCII sur 7 bits, même les pièces jointes, fichiers binaires, etc ;
* utiliser comme séparateur de messages une ligne vide suivie du mot « From » en début de ligne.
Suite a notre discussion sur IRC, jme renseigne sur mbox !!
Dernière modification par alt.G (Le 12/01/2008, à 02:18)
Hors ligne
#17 Le 12/01/2008, à 03:36
- Yannick_LM
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
Arf. Autant pour moi.
L'information n'était pas dans la page anglophone.
Bon courage
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#18 Le 12/01/2008, à 05:52
- alt.G
Re : Declaration uft-8 en ASCII (Scinder fichier .txt contournée)
Je crois que j'ai ma solution
Hors ligne