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 -
_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
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
-
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-
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 . :-)- 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
-
-
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-
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 !
-
-
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