Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/06/2012, à 16:58

roger64

[résolu] commande de nettoyage avec sed

Bonjour

Je fais des essais d'un OCR libre Cuneiform. Il produit quelques erreurs récurrentes que je cherche à éliminer en faisant successivement des recherches et des remplacements sur le fichier source html (ex  è → è). Pourtant le fichier est bien en utf8.

J'ai regroupé une liste d'erreurs sur le fichier  fix.sed  de cette façon:

s/é/é/g
s/è/è/g
s/ê/ê/g
s/ç/ç/g
s/À/À/g
s/— /— /g
s/Ã/à/g
s/…/.../g
s/ù/ù/g
s/â/a/g
s/ô/ô/g
s/î/î/g

Je m'assure que le fichier fix.sed est bien dans le dossier de travail.

Ensuite; je lance la commande suivante sur le fichier html qui va bien (complet.html)

sed -f fix.sed -i complet.html

Il ne se passe pas grand-chose. Ai-je fait les choses correctement?

Dernière modification par roger64 (Le 19/06/2012, à 20:52)

Hors ligne

#2 Le 19/06/2012, à 17:19

miniSeb

Re : [résolu] commande de nettoyage avec sed

Le problème ne vient pas du contenu du fichier, mais de l'affichage. Ton fichier contient bien les caractères é è et compagnie, pas les é, è... Ton sed infile ne sert donc à rien ; il n'y a rien à remplacer.

Illustration :

$ cat > test
&é"'(§è!çà)-
$ file -i test 
test: text/plain; charset=utf-8

Et l'affichage dans chromium paramétré sur Latin1 :

&é"'(§è!çà )-

Le fichier test contient les caractères “normaux”, c'est le logiciel qui n'affiche pas le contenu sous le bon codage.

Tu utilises quel logiciel pour afficher complet.html ?
Que donne file -i complet.html ?

Hors ligne

#3 Le 19/06/2012, à 20:13

roger64

Re : [résolu] commande de nettoyage avec sed

Bonjour

roger@lmde64 ~/Bureau/ $ file -i complet.html
complet.html: text/plain; charset=utf-8

Voici à quoi peut ressembler en l'ouvrant avec OO, un paragraphe du fichier que je veux corriger (à savoir le fichier appelé complet.html.) Ce n'est pas la meilleure page...

mini_490777extrait.png

Les caractères bizarroïdes apparaissent avec OO. Si je les prends séparément, en faisant un rechercher /remplacer avec OO, j'obtiens de bons résulatats. les problème est qu'il faudrait le faire à répétition et passer toute la liste que j'ai relevée dans fix.sed (voir premier message).

Avec quoi devrais-je ouvrir le fichier html?

EDIT: Tu as absolument raison.  Je passe une commande préalable qui est destinées à recoller les fichiers html et produit le fichier appelé complet.html. Malheureusement, je m'aperçois que c'est aussi cette commande qui écharpe le texte. J'ai ouvert avec Bluefish l'un des petits fichiers d'origine et il n'y a pas ces caractères bizarres.

La commande fautive est celle-ci:

sed '1,/<body/!d' hussard-000.html > complet.html
sed '/<body/,/<\/body>/!d;/<body/d;s/<\/body>//' hussard-*.html >> complet.html
echo "</body></html>" >> complet.html

Le problème est que cette commande est bien utile. Je ne sais pas comment on pourrait la réparer.

EDIT2: En regardant avec Bluefish, je vois que le fichier complet.html n'a pas d'en-tête. Cela ira déjà mieux si je le rajoute... roll
Je faisais une erreur avec la commande. Il faut absolument que je cite le premier fichier de la liste pour récupérer son en-tête. Je vais étudier ça.
Merci de ton aide et de tes explications.

EDIT3: résolu. En fait il faut absolument que je commence par un fichier 000 pour avoir un en-tête. S'il n'existe pas, il faut en renommer un. C'est la vie.

Dernière modification par roger64 (Le 19/06/2012, à 20:51)

Hors ligne