Inverser mots dans un titre de dossier MacosX

Fermé
ocetessa Messages postés 4 Date d'inscription samedi 6 mars 2010 Statut Membre Dernière intervention 30 janvier 2013 - 6 mars 2010 à 14:46
_Ritchi_ Messages postés 21234 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 27 mai 2024 - 7 mars 2010 à 16:52
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
A voir également:

3 réponses

_Ritchi_ Messages postés 21234 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 27 mai 2024 6 060
6 mars 2010 à 15:00
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
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
_Ritchi_ Messages postés 21234 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 27 mai 2024 6 060 > ocetessa
7 mars 2010 à 16:52
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
_Ritchi_ Messages postés 21234 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 27 mai 2024 6 060
6 mars 2010 à 22:29
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
soleil91 Messages postés 7638 Date d'inscription mardi 13 février 2007 Statut Contributeur Dernière intervention 25 mai 2011 1 013
7 mars 2010 à 13:00
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
Utilisateur anonyme
7 mars 2010 à 12:25
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