Bonjour à tous,
Voilà je galère un peu sur un script intégrant SED + GREP + des variables
Voilà mon script, après j'explique :
for fich in *.php
do
echo 'FICH EST = à : '$fich
nomfichier=$(basename $fich)
a=$(sed -n '/<H2>NOM<\/H2>/,/<A NAME="lbAC"> <\/A>/p' "$fich" | sed -e "s#<H2>NOM</H2>##" | sed -e 's#<A NAME="lbAC"> <\/A>##') # | sed /^$/)
b=$(grep "^<TITLE>.*</TITLE>$" $fich | sed -e 's#<TITLE>##' | sed -e 's#<\/TITLE>##')
sed -e 's/"$b"/"$a"/p' "$fich" > /home/subidz/mantest/man1/man1new/$nomfichier
done
Le but du script est de prendre une zone de texte délimitée par certaines balises précises et d'insérer cette zone de texe entre <title> et </title>
1 - Le problème viendrait du dernier SED (avant le done), quand j'échappe mes variables $a et $b avec des doubles quotes, il ne fait pas la modification demandée.
2 - Quand j'enlève les doubles quotes de $a et $b, il ne fait toujours pas la modification demandée.
3 - Quand je remplace :
sed -e 's/"$b"/"$a"/p'
par
sed -e "s/$b/$a/p"
ou par
sed -e "s/'$b'/'$a'/p"
J'ai droit a un beau
sed: -e expression n°1, caractère 46: commande `s' inachevée
3 - Point important : $a et $b peuvent contenir tous type de caractères (même les spéciaux comme &,#,...)
Voilà, je tourne un peu en rond, si quelqu'un a une piste... je suis preneur bien-sûr... là je vois plus rien... toute remarque sera la bienvenue.
Merci