Copie d'un groupe de fichiers dans plusieurs répertoires
Résoluartagon7 Messages postés 417 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais rédiger un programme Perl (ou en bash) qui crée, dans un premier temps, dans le répertoire /Test les 26 répertoires suivants:
/Rep_a
/Rep_b
/Rep_c
…
/Rep_z
Le programme copiera, ensuite, dans chacun des 26 répertoires, un groupe de fichiers vides (.txt, utf8) que j’aurai préalablement créé pour la lettre a.
Par exemple, supposons, que j’ai créé les trois fichiers suivants :
mots-a-fruits.txt
mots-a-legumes.txt
mots-a-animaux.txt
Je voudrais que le programme change la lettre a pour la lettre qui correspond au répertoire. Ainsi, à la fin, je voudrais avoir :
/Rep_a/ mots-a-fruits.txt
mots-a-legumes.txt
mots-a-animaux.txt
/Rep_b/ mots-b-fruits.txt
mots-b-legumes.txt
mots-b-animaux.txt
…
/Rep_z/ mots-z-fruits.txt
mots-z-legumes.txt
mots-z-animaux.txt
Merci
Chrome OS / Chrome 80.0.3987.137
- Copie d'un groupe de fichiers dans plusieurs répertoires
- Comment créer un groupe whatsapp - Guide
- Copie cachée - Guide
- Comment réduire la taille d'un fichier - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Comment ouvrir un fichier epub ? - Guide
2 réponses
Bonsoir.
En bash.
Pour créer tes répertoires :
prefix="Rep_" for letter in {a..z}; do mkdir $prefix$letter done
Pas bien complexe.
Pour récupérer la lettre située dans le nom du fichier :
# Noms que tu devras certainement lister dans un répertoire files=( mots-a-fruits.txt mots-f-legumes.txt mots-y-animaux.txt ) for f in ${files[@]}; do parts=(${f//-/ }) echo ${parts[1]} # déplacer le fichier avec mv dans le répertoire voulu done
Dans perl, on peut manipuler des chaînes de caractères.
On peut également appeler des fonctions du système.
Je te suggère de tout faire dans le répertoire de test au départ.
Je ne connais pas les commandes pour créer un dossier dans ton système.
Sur Linux, je ferais un mkdir pour chaque répertoire..
Puis un cd pour y aller et un touch pour créer chaque fichier vide.
Salut,
Ton premier programme fonctionne correctement. Cependant, ton second ne retourne qu'une lettre. Je voulais plutôt créer, de façon itérative, un groupe de répertoires et un groupe de fichiers spécifiques à chacun des répertoires.
En me basant sur ton premier programme, j'ai trouvé le script qui me donne ce que je veux, soit :
Merci