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 21294 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 1 décembre 2024 - 7 mars 2010 à 16:52
_Ritchi_ Messages postés 21294 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 1 décembre 2024 - 7 mars 2010 à 16:52
A voir également:
- Inverser mots dans un titre de dossier MacosX
- Mettre un mot de passe sur un dossier - Guide
- Dossier appdata - Guide
- Trouver un film sans le titre - Télécharger - Divers TV & Vidéo
- Impossible de supprimer un dossier - Guide
- Inverser ecran pc - Guide
3 réponses
_Ritchi_
Messages postés
21294
Date d'inscription
samedi 17 mars 2007
Statut
Contributeur
Dernière intervention
1 décembre 2024
6 080
6 mars 2010 à 15:00
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
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
_Ritchi_
Messages postés
21294
Date d'inscription
samedi 17 mars 2007
Statut
Contributeur
Dernière intervention
1 décembre 2024
6 080
6 mars 2010 à 22:29
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
Voici la partie pratique de ce qu'il faut faire dans le Terminal (les 9 commandes décrites précédemment):
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
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
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
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 !
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 !
Utilisateur anonyme
7 mars 2010 à 12:25
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
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
7 mars 2010 à 12:17
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 . :-)
7 mars 2010 à 16:52
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:
par la ligne de code:
De plus si tu veux obtenir Texte [xxxxxx] comme nom de dossier, alors il faut remplacer la ligne de code:
par la ligne de code (j'ai enlevé un _ entre $3 et $1):
En final, le script devient donc idéalement ceci:
Ritchi