logomac



MacAccueil

Réaliser un script permettant d'automatiser la substitution des codes HTML aux lettres accentuées et caractères spéciaux.


Il s'agit ici de réaliser un petit script, que nous allons nommer "sedhtml", et qui permet de remplacer automatiquement les accents par leur code html.

Ouvrez TextEdit et rédigez le script ainsi:

#!/bin/sh
sed -e 's/é/\é/g' -e 's/è/\è/g' -e 's/à/\à/g' -e 's/ç/\&ccdil;/g' -e 's/ê/\ê/g'

Il est bien sûr possible de le compléter, à son gré, en incluant le code de tous les caractères spéciaux dont on désire automatiser le remplacement:

-e 's/â/\â/g' -e 's/ä/\ä/g' -e 's/æ/\æ/g' -e 's/ë/\ë/g' -e 's/î/\î/g' -e 's/ï/\ï/g' -e 's/ô/\ô/g' -e 's/ù/\ù/g' -e 's/û/\û/g' -e 's/ü/\ü/g' …

et ainsi de suite une bonne fois pour toutes, sans oublier les Œ et œ, ' (apostrophe)… Des livres ou sites sur le code html donnent l'ensemble des codes affectés aux différents caractères spéciaux (noter à ce sujet que je n'ai pas réussi à faire fonctionner, sans en connaître à ce jour la raison, un script chaînant toutes les substitutions dont je peux avoir besoin, et j'ai donc dû opter pour la solution de plusieurs scripts).

Il suffit de l'enregistrer dans TextEdit en faisant attention à le Convertir au format texte dans le menu Format, puis Enregistrer sous "sedhtml.sh". TextEdit vous demande alors si vous voulez ajouter l'extension .txt:

formatext

Cliquez sur "Ne pas ajouter". Vous devez obtenir un fichier blanc.

Ensuite se pose la question de savoir où mettre ce fichier si vous voulez l'utiliser simplement comme une commande, c'est-à-dire que le Terminal le reconnaisse comme une commande exécutable lorsque vous tapez cette ligne:

% sedhtml < fichierEntrée.html > fichierSortie.html

Tout d'abord, pour rendre le fichier exécutable, il convient de passer par la commande:

% chmod +x sedhtml.sh.

Par la suite, vous pouvez placer le fichier sedhtml.sh dans un répertoire listé dans la variable d'environnement $PATH où Terminal va chercher les commandes. Voici comment on peut procéder:

% mv sedhtml.sh /usr/local/bin/sedhtml

ou

% mv sedhtml.sh /usr/bin/sedhtml

Ainsi, si vous faites menu AllerAller au dossier et sélectionnez le répertoire /usr/bin (ou /usr/local/bin), vous trouverez le fichier sedhtml sous la forme suivante:

usrbin


On peut ensuite tester le script en entrant dans le terminal la commande sedhtml et en faisant attention à ce que le fichier que vous souhaitez modifier soit bien au format .html et à désigner le fichier de sortie par un nom différent de celui du fichier d'entrée (prévoir, pour le test, de faire une copie de sauvegarde du fichier d'entrée). Remarque: pour la commande, vous pouvez utiliser ce fichier sedhtml:

a) soit sous cette forme:

% sedhtml < fichierEntrée.html > fichierSortie.html

b) soit sous cette autre forme, avec cat:

% cat /chemin_d'acces/fichierEntrée.html | sedhtml | chemin_d'acces/fichierSortie.html

Note: pour obtenir le pipe: | on appuie sur les touches alt+shift+L

Sur ce sujet, voir la revue AvosMac! numéros : 28,  page  17, parution 04/2003, et 30, p.41, parution 02/2004 rubrique : Terminal; Forums MacBidouille.

Quelques liens sur le HTML:

Aide4web
All HTML
Open Web
Haut de la page

signature


Pour me contacter, vous pouvez m'écrire à
http://homepage.mac.com/fgiron/macaccueil.html