while read, fermer un fichier ?
Bonjour,
Je souhaiterai exporter la commande find dans un fichier 'tmp', puis utiliser ce fichier dans la fonction renomme()
Voici le script avec lecture du fichier 'tmp' :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #!/bin/bash
# Comment exécuter le script
# ./renom2 REPERTOIRE
# A compléter si nécessaire
caracteres_avant="àâäçéèêëîïôöùüûÂÇÉÈÊËÎÏÔÖÙÜÛ "
caracteres_apres="aaaceeeeiioouuuACEEEEIIOOUUU_"
#renomme si un "caracteres_avant" est présent
function renomme()
{
while read chemin; do
echo "dans le répertoire : " $chemin
cd "$chemin"
for i in * ; do
if [[ $i == *[$caracteres_avant]* ]] ; then
echo "renomme : "
mv -v "$i" `echo $i | tr "$caracteres_avant" "$caracteres_apres"` ;
fi
done
done < /home/utilisateur/Desktop/script/tmp
}
#liste les répertoires dans l'ordre décroissant
{
find $1 -type d | sort -r > tmp
} | renomme |
Correction :
Je pensais que la syntaxe était mauvaise, mais ce n'est pas le cas, ce script fonctionne aléatoirement... Pensez-vous que c'est lié à l'ouverture du fichier, faut-il le fermer ?
Merci d'avance