Renommage de séries en masse

yirkkiller -  
zipe31 Messages postés 38797 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaiterais renommer en masse des fichiers.

J'ai donc un dossier Slides qui contient le titre de la présentation (formaté par mes soins sous la forme PresentationSecurite par exemple). Chaque dossier contient Seminaire01, Seminaire02, etc...

Presentations
|___PresentationSecurite
|___Seminaire01
|___Fichier1
|___Fichier2
|___Fichier3
|___Seminaire02
|___Fichier1
|___Fichier2
|___Fichier3
|___PresentationInformatique
|___Seminaire01
|___Fichier1
|___Fichier2
|___Fichier3
|___Seminaire02
|___Fichier1
|___Fichier2
|___Fichier3
...

Les fichiers sont par contre dans un bordel monstrueux.

Est-il possible d'extraire le nom de la présentation à partir du dossier (PresentationSecurite par exemple), le numéro de la présentation (Seminaire01) à partir du dossier aussi, et d'extraire le numéro du fichier à partir du nom du fichier (chaque nom de fichier contient p1s3 pour le troisième fichier du séminaire 01 par exemple), pour le renommer sous la forme :

NomPresentation-Seminaire01-Fichier03.ppt

J'ai un poste sous Windows et deux sous Linux, les deux types de scripts sont donc possibles.

Merci !
A voir également:

3 réponses

yirkkiller
 
Up svp
0
Gord21 Messages postés 928 Statut Membre 289
 
Bonsoir,
Je répond pour Windows, ou c'est possible... par contre, je ne suis pas sûr d'avoir compris l'arborescence.
Avant
PresentationSecurite (dossier)
   |___Seminaire01 (sous-dossier)
               |___Fichier_ppt_p1s3.ppt (fichier à renommer)

Après
PresentationSecurite
   |___ Seminaire01
               |___ PresentationSecurite-Seminaire01-Fichier03.ppt


Est-ce ça ?

@+
0
zipe31 Messages postés 38797 Date d'inscription   Statut Contributeur Dernière intervention   6 435
 
Salut,

Un exemple sous GNU/Linux :
$ tree
.
'-- PresentationSecurite
    |-- Seminaire01
    |   |-- fichier1
    |   |-- fichier2
    |   |-- fichier3
    |   '-- fichier4
    |-- Seminaire02
    |   |-- fichier1
    |   |-- fichier2
    |   |-- fichier3
    |   '-- fichier4
    |-- Seminaire03
    |   |-- fichier1
    |   |-- fichier2
    |   |-- fichier3
    |   '-- fichier4
    |-- Seminaire04
    |   |-- fichier1
    |   |-- fichier2
    |   |-- fichier3
    |   '-- fichier4
    '-- Seminaire05
        |-- fichier1
        |-- fichier2
        |-- fichier3
        '-- fichier4

6 directories, 20 files

$ find PresentationSecurite -type f -exec bash -c \
'name=$(basename $1); dir=$(dirname $1);                            
mv $1 ${dir}/${dir/\//-}-${name}' _ {} \;      
                     
$ tree
.                        
'-- PresentationSecurite 
    |-- Seminaire01      
    |   |-- PresentationSecurite-Seminaire01-fichier1
    |   |-- PresentationSecurite-Seminaire01-fichier2
    |   |-- PresentationSecurite-Seminaire01-fichier3
    |   '-- PresentationSecurite-Seminaire01-fichier4
    |-- Seminaire02
    |   |-- PresentationSecurite-Seminaire02-fichier1
    |   |-- PresentationSecurite-Seminaire02-fichier2
    |   |-- PresentationSecurite-Seminaire02-fichier3
    |   '-- PresentationSecurite-Seminaire02-fichier4
    |-- Seminaire03
    |   |-- PresentationSecurite-Seminaire03-fichier1
    |   |-- PresentationSecurite-Seminaire03-fichier2
    |   |-- PresentationSecurite-Seminaire03-fichier3
    |   '-- PresentationSecurite-Seminaire03-fichier4
    |-- Seminaire04
    |   |-- PresentationSecurite-Seminaire04-fichier1
    |   |-- PresentationSecurite-Seminaire04-fichier2
    |   |-- PresentationSecurite-Seminaire04-fichier3
    |   '-- PresentationSecurite-Seminaire04-fichier4
    '-- Seminaire05
        |-- PresentationSecurite-Seminaire05-fichier1
        |-- PresentationSecurite-Seminaire05-fichier2
        |-- PresentationSecurite-Seminaire05-fichier3
        '-- PresentationSecurite-Seminaire05-fichier4

6 directories, 20 files

$

;-))
0