Renommage de séries en masse

yirkkiller -  
zipe31 Messages postés 34620 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 !

3 réponses

  1. 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
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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