[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
- To:
- Subject: Re: Aide pour compléter un script
- From: Christian Mangin <>
- Date: Sat, 22 Jul 2000 10:45:32 -0400
-
In-reply-to: <[email protected]>
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.:
é=\é
É=\É
ç=\ç
Ç=\Ç
à=\à
â=\â
ä=\ä
À=\À
Â=\Â
Ä=\Ä
è=\è
ê=\ê
....
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\é\;n\é\;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 à
> "\é\;" pour tout le script.
>
> Donc dans Texte_destination je pourrais mettre
> "Je veux générer des accents" et sed mettra
> "\é\;" au lieu des "é".
>
> Ca doit ce faire...
>
> Merci