bonjour ou bonsoir à tous,
voila, je viens de créer un serveur apache à partir de site recupéré sur un serveur mac ou les webmasters ne faisait pas attention à la casse puisque comme windows, ce serveur ne l'est pas. Le probleme est que ce n'est pas le cas sous linux !!!
je dois donc modifier tous les noms de fichiers en minuscule ainsi que leurs chemins relatifs dans les fichiers .htm , .php et .html.
J'ai donc commencé à faire un script lequel je n'arrives pas à boucler et je dois rendre mon rapport de stage dans trois jours!!!!
Please help me.
voici le script:
#modifie les chemin relatif majuscule/minuscule en minuscule
fawk() {
for v in `cat /basename` ; do (
for x in `cat /listhtm` ; do (
if [[ -f `echo $x` ]]; then
z=`ftr`
cat $x | sed 's/'$v'/'$z'/g' > /TEMP/temp$x && rm -rf ./$x && mv /TEMP/temp$x ./$x && rm-rf /TEMP/*
echo $v && echo $x && echo $z
fi )
done )
done
rm -rf /list /listbis /listhtm
}
#modifie les majuscules en minuscules
ftr() {
echo "ftr_fonctionne"
echo $v|tr 'A-Z' 'a-z'
}
#liste les noms de fichiers dans le répertoire courant en excluant les dossiers
list() {
echo list_marche!!!
ls > /list
for u in `cat /list` ; do
(if [[ -f `echo $u` ]]; then
echo $u >> /listbis
fi)
done
cat /listbis | grep htm > /listhtm
}
#placement dans le repertoire de travail
cd $*
#création d'un répertoire temporaire
mkdir /TEMP
#génération de la liste de nom de fichier nécéssaire à la fonction awk
ls -R $* | grep -v / > /basename && sed -i '/^$/d' /basename
#génération de la liste de dossier à visiter (déplacement dans les répertoires)
ls -R $* | grep / | tr -d : > /dirname
sort -r /dirname > /dirnamebis
cat /dirname
cat /dirnamebis
for d in `cat /dirnamebis` ; do
(if [[ -d `echo $d` ]] ; then
cd $d && fawk
fi)
done
for i in `ls -R` ; do
j=`echo $i|tr 'A-Z' 'a-z'`
mv "$i" "$j"
done
rm -rf /dirnamebis
rm -rf /basename
rm -rf /dirname
rm -rf /TEMP
quelqu'un peut il m'aider?
Partager