iconv associé à bzip2 : rien ne sort - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 11-12-2008 à 19:59:05
PS: le problème semble spécifique à wiki ou peut-être aux gros fichiers, car lorsque je prends un fichier tout simple :
cat test | bzip2 -9 > test.bz2 |
aucun problème :-\
Marsh Posté le 11-12-2008 à 20:03:36
une idée au hasard, tu es sur que bz2 envoie le flux au fur et à mesure ? et tu es sur que iconv est capable de le traiter au fur et à mesure ?
parce que si l'un ou l'autre ne le fait pas, ça explique le comportement, il faut attendre que tout soit décompressé.
Marsh Posté le 11-12-2008 à 20:35:35
bzip2 oui puisque mon programme arrive à traiter les données avec bzip2 seul
mais hmm... peut etre que iconv non !
aie aie aie, comment faire ? :-\
Marsh Posté le 11-12-2008 à 20:47:27
bzcat plutot que bzip2 -dc ?
Marsh Posté le 11-12-2008 à 21:30:08
# ls -l /usr/bin/bzcat
lrwxrwxrwx 1 root root 15 Nov 6 19:52 /usr/bin/bzcat -> ../../bin/bzip2*
Marsh Posté le 11-12-2008 à 22:47:44
Ah oui tiens
J'aurais au moins appris un truc aujourd'hui
Marsh Posté le 11-12-2008 à 19:42:29
Bonjour,
Je souhaiterais lire grâce à un programme perso la base de données wikipedia, qui est en bz2, le tout sans passer par un fichier temporaire décompressé (trop gros).
Mon programme utilise donc bzip2 -dc frwiki-pages-meta-history.xml.bz2 afin de lire la sortie standard.
La aucun problème ca fonctionne.
Oui mais voila, il y a tout de meme un probleme : je voudrais de l'ISO-8859-1 et non de l'UTF-8.
Alors je fais :
bzip2 -dc frwiki-pages-meta-history.xml.bz2 | iconv -c --from-code=UTF-8 --to-code=ISO-8859-1 (ou sans le -c)
et la rien ne sort !
Pourtant, si je fais un test en procédant comme ceci, j'ai ce qu'il faut en sortie :
bzip2 -dc frwiki-pages-meta-history.xml.bz2 > test (puis je kill avec CTRL+C au bout de quelques secondes)
cat test | iconv -c --from-code=UTF-8 --to-code=ISO-8859-1
Alors comment se fait-il que iconv associé à cat fonctionne alors que rien ne se passe quand les données proviennent de bzip2 ?
Je vous remercie beaucoup par avance pour vos idées !