Inverser mots dans un titre de dossier MacosX

ocetessa Messages postés 4 Statut Membre -  
_Ritchi_ Messages postés 21130 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
sur MacOsX 10.5/ Mac10.6
voila le probleme : exemple : un dossier est nommé : [123456]_essai et je voudrai que le nom de ce dossier devienne essai [123456]. mise a part des copier et coller .. je galère vu que j'en ai 350 a faire ....

nb : en resume dossier: tous [6 lettres ou chiffres]_Titre longueur variable --> en Titre longueur variable_[6 lettres ou chiffres]

j'ai essayé via Text edit .. import Excel de la liste inversée et export Text edit mais faut que je fasse encore des copier-coller ....

si quelqu'un a une soluce via Applescript ? ou Automator ...???
merçi
Configuration: Mac OS X 10.5 / 10.6/ Firefox 3.6

3 réponses

  1. _Ritchi_ Messages postés 21130 Date d'inscription   Statut Contributeur Dernière intervention   6 135
     
    Salut,

    Avant toute action, je te conseillerai de faire une bonne sauvegarde de tes données.
    Ensuite, avec un script cela est faisable si et seulement si le caractère _ est unique dans tes noms de fichiers.
    Confirme moi que c'est bien la cas.
    Si c'est le cas, le caractère _ peut servir de repère et permettre la permutation de ce qu'il y a avant avec ce qu'il y a après.

    Je teste cela et te tiens au courant.

    Ritchi
    0
    1. ocetessa
       
      salur ritchi,

      merçi de s"y intéresser déjà.

      oui tous le fichiers ont du genre [123456]_ textesansautre_dedans donc ce _ peut etre une reference sans souci.

      a bientôt. je vais regarder ta proposition.

      NB : le dossier contenant les dossiers [xxxxx]_Texte fait 500 Gigas donc du temps pour en faire une copie je vais en copier une dizaine à la fois...

      [xxxxxx]= 6 alphanumérique 0-9 A-Z majuscule façon constante
      Texte = lettres en majuscules dès le départ
      _ peut être enlevé : le résultat : Texte [xxxxxx] serait parfait . :-)
      0
      1. _Ritchi_ Messages postés 21130 Date d'inscription   Statut Contributeur Dernière intervention   6 135 > ocetessa
         
        Bonjour,
        Au cas où Renamer proposé par Sanspseudo ne te convienne pas et que tu veuilles utiliser mon script, j'ai une modification à lui apporter à mon script pour prendre en compte ta nouvelle spécification sur les noms de tes dossiers.
        Il faut remplacer la ligne de code:
        	if (/^(\[\d{6}\])(_)(.+)(:)/) {
        

        par la ligne de code:
        	if (/^(\[[A-Za-z0-9]{6}\])(_)(.+)(:)/) {
        


        De plus si tu veux obtenir Texte [xxxxxx] comme nom de dossier, alors il faut remplacer la ligne de code:
        		$PERMUT[$indice]="mv \"$1_$3\" \"$3_$1\" \n";
        

        par la ligne de code (j'ai enlevé un _ entre $3 et $1):
        		$PERMUT[$indice]="mv \"$1_$3\" \"$3 $1\" \n";
        


        En final, le script devient donc idéalement ceci:
        #!/usr/bin/env perl
        my $file = $ARGV[0];
        open(FILE,$file);
        $indice=1;
        while (<FILE>) {
        	if (/^(\[[A-Za-z0-9]{6}\])(_)(.+)(:)/) {
        		$PERMUT[$indice]="mv \"$1_$3\" \"$3 $1\" \n";
        		$indice=$indice+1;
        	}
        }
        close (FILE);
        open(OUTFILE, "> SCRIPT_PERMUTATION");
        for ($i=0; $i<= $indice ; $i++ ) {
          print OUTFILE $PERMUT[$i]; 
        }
        close (FILE);
        



        Ritchi
        0
  2. _Ritchi_ Messages postés 21130 Date d'inscription   Statut Contributeur Dernière intervention   6 135
     
    Bonsoir,

    Cela va paraître compliqué, mais il n'en est rien. Cela se passe en deux étapes: une dans le Finder où l'on va rassembler dans un seul dossier les dossiers dont le nom est [6chiffres]_desCaractères et la seconde dans le Terminal où l'on va exécuter un premier script. Celui-ci va étudier le dossier où il est, chercher les dossiers qui correspondent au critère de nommage puis générer un deuxième script que l'on va exécuter.

    Depuis le Finder:
    Action 1 : Créer un nouveau dossier sur le bureau et le nommer TEMP
    Action 2 : Regrouper tous les dossiers à renommer dans ce nouveau dossier TEMP
    Action 3 : Ouvrir TextEdit
    Action 4 : Copier/Coller le script (voir plus bas) dans TextEdit
    Action 5 : Sauver le script dans le dossier TEMP et lui donner le nom permutation.pl (ce n'est pas un 1 ou un i à la fin mais un L minuscule. l'extension pl correspond à du perl langage de programmation)

    Depuis une fenêtre du Terminal, on va faire ceci (pour la pratique, voir plus loin l'exemple que j'ai appliqué):
    Commande 1 : Se déplacer dans le répertoire TEMP
    Commande 2 : Lister le contenu du dossier
    Commande 3 : Rendre ce script exécutable
    Commande 4 : Créer un fichier nommé LISTE avec les éléments à renommer
    Commande 5 : Lancer le script permutation.pl sur ce fichier LISTE
    Commande 6 : Ouvrir le fichier résultat et vérifier comment vont être renommé les dossiers
    Commande 7 : Si tout est OK, rendre exécutable le fichier résultat
    Commande 8 : Exécuter le fichier généré
    Commande 9: Constater le résultat du renommage

    Voici le code du premier script que l'on va nommer permutation.pl
    #!/usr/bin/env perl
    my $file = $ARGV[0];
    open(FILE,$file);
    $indice=1;
    while (<FILE>) {
    	if (/^(\[\d{6}\])(_)(.+)(:)/) {
    		$PERMUT[$indice]="mv \"$1_$3\" \"$3_$1\" \n";
    		$indice=$indice+1;
    	}
    }
    close (FILE);
    open(OUTFILE, "> SCRIPT_PERMUTATION");
    for ($i=0; $i<= $indice ; $i++ ) {
      print OUTFILE $PERMUT[$i]; 
    }
    close (FILE);
    


    Voici la partie pratique de ce qu'il faut faire dans le Terminal (les 9 commandes décrites précédemment):
    [iMac] ritchi% cd  Desktop/TEMP
    [iMac] ritchi% 
    [iMac] ritchi% ls -al
    total 24
    drwxr-xr-x   9 ritchi  staff   306  6 mar 22:07 .
    drwx------@ 44 ritchi  staff  1496  6 mar 20:53 ..
    -rw-r--r--@  1 ritchi  staff  6148  6 mar 22:07 .DS_Store
    drwxr-xr-x   2 ritchi  staff    68  6 mar 20:20 012345_repertoire05
    drwxr-xr-x   2 ritchi  staff    68  6 mar 20:34 [123456]_repertoire01
    drwxr-xr-x   2 ritchi  staff    68  6 mar 20:37 [234567]_repertoire02
    drwxr-xr-x   2 ritchi  staff    68  6 mar 20:35 [345678]_repertoire03
    drwxr-xr-x   2 ritchi  staff    68  6 mar 20:37 [456789]_repertoire04
    -rw-r--r--@  1 ritchi  staff   329  6 mar 21:54 permutation.pl
    [iMac] ritchi% 
    [iMac] ritchi% chmod +x permutation.pl
    [iMac] ritchi% 
    [iMac] ritchi% ls -1 *_* > LISTE
    [iMac] ritchi% 
    [iMac] ritchi% ./permutation.pl ./LISTE 
    [iMac] ritchi% 
    [iMac] ritchi% more SCRIPT_PERMUTATION 
    mv "[123456]_repertoire01" "repertoire01_[123456]" 
    mv "[234567]_repertoire02" "repertoire02_[234567]" 
    mv "[345678]_repertoire03" "repertoire03_[345678]" 
    mv "[456789]_repertoire04" "repertoire04_[456789]" 
    [iMac] ritchi% 
    [iMac] ritchi% chmod +x SCRIPT_PERMUTATION 
    [iMac] ritchi% 
    [iMac] ritchi% ./SCRIPT_PERMUTATION 
    [iMac] ritchi% 
    [iMac] ritchi% ls -al
    total 40
    drwxr-xr-x  11 ritchi  staff   374  6 mar 22:09 .
    drwx------@ 44 ritchi  staff  1496  6 mar 20:53 ..
    -rw-r--r--@  1 ritchi  staff  6148  6 mar 22:07 .DS_Store
    drwxr-xr-x   2 ritchi  staff    68  6 mar 20:20 012345_repertoire05
    -rw-r--r--   1 ritchi  staff   117  6 mar 22:08 LISTE
    -rwxr-xr-x   1 ritchi  staff   208  6 mar 22:08 SCRIPT_PERMUTATION
    -rwxr-xr-x@  1 ritchi  staff   329  6 mar 21:54 permutation.pl
    drwxr-xr-x   2 ritchi  staff    68  6 mar 22:14 repertoire01_[123456]
    drwxr-xr-x   2 ritchi  staff    68  6 mar 22:14 repertoire02_[234567]
    drwxr-xr-x   2 ritchi  staff    68  6 mar 22:15 repertoire03_[345678]
    drwxr-xr-x   2 ritchi  staff    68  6 mar 22:15 repertoire04_[456789]
    [iMac] ritchi% 
    


    Tu remarqueras que seul le dossier nommé "012345_repertoire05" n'a pas été touché par le script: il ne correspond pas à la syntaxe que tu as donnée à savoir [6chiffres]_desCaracteres

    Si tu as des questions, n'hésite pas.
    Ritchi
    0
    1. soleil91 Messages postés 8023 Statut Contributeur 1 013
       
      doux Jésus ! bonjour Ritchi ! travailler comme cela un dimanche ...
      je suis évidemment anéanti par ce genre de post qui me ramène à un niveau .. de sous-sol !!
      dis moi combien d'années d'études poussées faut il pour savoir tout cela ..... ????? pour un jeune retraité ...
      bravo pour notre intervenant qui a une chance folle ici -

      et je sais de quoi je parle .. dans un registre différent

      tiens ça tombe bien = bonjour à Francis qui vient d'intervenir !
      0
  3. Utilisateur anonyme
     
    Bonjour

    Une solution simple, utiliser la démo de Renamer
    Successeur de l'excellent Renamer4Mac qui était gratuit et parfaitement capable de faire ça en 2 secondes.

    Quelques tâtonnements au début pour trouver le bon réglage. DOnc essayer d'abord sur une copie du dossier

    Cordialement
    0