Bonjour,
si vous êtes sous Wind**s, je ne peux rien pour vous. Par contre, si vous travaillez sous GNU/Linux, je vous ai fait un petit script qui devrait faire l'affaire.
J'ai repris vôtre exemple pour les noms de fichiers. Voici le script:
- Code: Tout sélectionner
#!/bin/bash
###############################################################
# Script permettant de déplacer des fichiers avec création de
# répertoire associé
#
# Version : 0.1
###############################################################
DIR=$1
NB_CARACT=$2
if (test -d $DIR)
then cd "$DIR";
for file in `ls`
do
rep=`basename "$file" | cut -b -"$NB_CARACT"`
if (test -d $file)
then continue
fi
if !(test -d $rep)
then mkdir $DIR$rep
fi
if (test -f $file)
then mv $file $rep
fi
done
else
echo "Le répertoire $1 ne semble pas exister !";
exit 1
fi
et voici ce que cela donne dans un shell:
- Code: Tout sélectionner
[christian@Auvergne2 christian]$ ls -R devel/
devel/:
ABC001 ABC003 ACE001 ACE003 AZF001 AZF003
ABC002 ABC004 ACE002 ACE004 AZF002 AZF004
[christian@Auvergne2 christian]$
[christian@Auvergne2 christian]$
[christian@Auvergne2 christian]$ ./Repartir /home/christian/devel/ 3
[christian@Auvergne2 christian]$
[christian@Auvergne2 christian]$
[christian@Auvergne2 christian]$ ls -R devel/
devel/:
ABC/ ACE/ AZF/
devel/ABC:
ABC001 ABC002 ABC003 ABC004
devel/ACE:
ACE001 ACE002 ACE003 ACE004
devel/AZF:
AZF001 AZF002 AZF003 AZF004
[christian@Auvergne2 christian]$
Faites un copié/collé du script dans vôtre éditeur favori et enregistrez-le dans votre dossier utilisateur sous le nom "Repartir" par exemple.
Ensuite faire "chmod +x Repartir"
Sous root, faire "mv Repartir /usr/local/bin"
Maintenant, il ne reste plus qu'a invoquer le script avec comme paramètres le chemin complet du répertoire + le nombre de caractères à extraire comme racine. (voir le sortie du shell donné en exemple)
Voilà, espérant que cela vous aide un tantinet. Si vous avez des questions (ou des modifs à faire), n'hésitez pas.....
A+
Christian.