Script de rangement par extension

Fermé
tatain - 28 mai 2014 à 10:27
 tatain - 28 mai 2014 à 19:18
Salut a tous,

Dans le cadre d'un exercice de cours, je dois ecrire un script shell qui trierait les fichiers du repertoire courant dans des dossiers fils en fonction de leur extension (*.txt dans un repertoire TXT, *.mp3 dans un repertoire MP3, etc...)

Quelqu'un pourrait-il m'expliquer comment proceder ? N'hesitez pas a rentrer dans le detail ;-b

Merci beaucoup !
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
28 mai 2014 à 10:45
0
Alors, après mon message matinal posté entre deux coups de fil au boulot, je vais expliquer un peu plus ce qui me pose probleme.

J'imagine que ce script peut etre decomposé en 3 blocs :

1 : recuperation dans une (des) variable(s) des extensions.
2 : Creation des repertoires
3 : Deplacement des fichier dans les repertoires.

Les etapes 2 et 3 ne vont (je pense) pas me poser de soucis, mais c'est pour l'etape 1 que je suis un peu largué.

Comment stocker dans une variable (appelons la $ext) simplement l'extension d'un fichier ? J'imagine que sa dois se faire a coup de commande cut, mais après moult essais infructueux, j'en viens appeler a l'aide !
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
28 mai 2014 à 18:18
mais après moult essais infructueux, j'en viens appeler a l'aide !
Ben justement, montres-nous ce que tu as déjà entrepris ;-\
0
Le mieux que mon cerveau a pondu pour le moment c'est :

ext="ls | cut -f2 -d."

Le probleme c'est que ... 1) ça marche pas ; 2) si ça marchait il suffirait qu'un fichier s'appelle machin.truc.txt pour que ça marche plus.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
28 mai 2014 à 19:04
$ ext="machin.truc.txt"

$ echo "${ext}"
machin.truc.txt

$ echo "${ext#*.}"
truc.txt

$ echo "${ext##*.}"
txt
0
Ok mais comment mon script va aller chercher lui meme le truc ? Faut bien qu'il fasse l'inventaire des fichier qu'il y a dans le repertoire où il est lancé pour pouvoir en extraire les extensions avec cet echo (je suis pas sure que ma question soit claire là...) ?

Il doit y avoir une commande que je ne connais/maitrise pas...

(En tous cas, merci pour tes reponses rapides !!!)
0