[Précédent (date)] [Suivant (date)] [Précédent (sujet)] [Suivant (sujet)] [Index par date] [Index par sujet]

Re: Aide pour compléter un script



Bonjour,

Ce script pourrait faire le travail :
----------------------------------------------------------
#!/bin/bash
liste=`cat $1`
substitution=""

for expr in $liste
do
        src=`echo $expr | cut -d= -f 1`
        tgt=`echo $expr | cut -d= -f 2`
        substitution="$substitution -e s/$src/$tgt/g" 
done

if [ ! -z "$substitution" ]
then    
        sed $substitution < /dev/stdin 
fi      
-----------------------------------------------------------
Tu appelle le script de cette façon :

nom_du_script table_de_conversion < fichier_entree > fichier_sortie


'table_de_conversion' est un fichier où tu auras défini les
substitutions :
ex.:
é=\&eacute;
É=\&Eacute;
ç=\&ccedil;
Ç=\&Ccedil;
à=\&agrave;
â=\&acirc; 
ä=\&auml;
À=\&Agrave;
Â=\&Acirc;
Ä=\&Auml;
è=\&egrave;
ê=\&ecirc;
....

Tu pourrais définir ces substitutions directement dans le script, mais
je trouve cette approche beaucoup plus flexible.

Salutations.


Benoit a écrit :
> 
> J'avais déjà demander des renseigements concernant un script
> mais cette fois c'est pour accroître son efficacité:
> 
> Mon script est le suivant (Pour remplacer des expressions par
> d'autres dans mes pages web)
> 
> Texte_origine="Je veux generer les accents"   (Par exemple)
> 
> Texte_destination="Je veux g\&eacute\;n\&eacute\;rer les accents"
> (qui équivaut à "Je veux générer les accents en html")
> 
> for i in $(find $Repertoire -name \*.html)
> do sed -e \
> "s/$Texte_origine/$Texte_destination/g" \
> < $i > $i.tmp &&
> mv $i.tmp $i
> done
> 
> La question est la suivante:
> 
> J'aimerais que mon script comprenne que "é" équivaut à
> "\&eacute\;" pour tout le script.
> 
> Donc dans Texte_destination je pourrais mettre
> "Je veux générer des accents" et sed mettra
> "\&eacute\;" au lieu des "é".
> 
> Ca doit ce faire...
> 
> Merci