IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Script et Automator : Renommer lot de fichiers en déplaçant un mot [Résolu]
Options
-do_ob-
posté 27 Aug 2015, 10:54
Message #1


Adepte de Macbidouille
*

Groupe : Membres
Messages : 179
Inscrit : 28 Apr 2008
Membre no 113 242



Bonjour,

J'ai un lot de fichiers que je cherche à renommer. Pour faire simple ils se présentent sous la manière :

Untel (Truc plus ou moins long).ext

Et je voudrai l'inverser en

(Truc plus ou moins long) Untel.ext

J'ai essayé de chercher avec automator sans succès. J'imagine qu'avec un script c'est totalement possible.

Si qqn pouvait me guider ce serait parfait.

Ce message a été modifié par -do_ob- - 27 Aug 2015, 13:13.


--------------------
Sous 10.10.5
Go to the top of the page
 
+Quote Post
noop
posté 27 Aug 2015, 11:07
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 964
Inscrit : 3 Nov 2005
Membre no 49 239



Donne des exemples de noms de fichier réels
Go to the top of the page
 
+Quote Post
-do_ob-
posté 27 Aug 2015, 11:15
Message #3


Adepte de Macbidouille
*

Groupe : Membres
Messages : 179
Inscrit : 28 Apr 2008
Membre no 113 242



Il s'agit de fichiers où grosso modo il y a le lieu (Avec un ou plusieurs mots suivant les fichiers) suivi du ou des noms des protagonistes entre parenthèses.

Il s'agirait juste de créer un script qui déplace tout ce qui est entre parenthès au début du fichier. C'est tout.



--------------------
Sous 10.10.5
Go to the top of the page
 
+Quote Post
noop
posté 27 Aug 2015, 11:19
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 964
Inscrit : 3 Nov 2005
Membre no 49 239



Donne nous 2 exemples. Des exemples valent mieux qu'une longue description
Go to the top of the page
 
+Quote Post
-do_ob-
posté 27 Aug 2015, 11:27
Message #5


Adepte de Macbidouille
*

Groupe : Membres
Messages : 179
Inscrit : 28 Apr 2008
Membre no 113 242



Maternité repas (Lou Nondefamille et famille au complet).mp4
Première rentrée scolaire (Thomas et Solène).mp4

etc...


--------------------
Sous 10.10.5
Go to the top of the page
 
+Quote Post
Guest_JacqR_*
posté 27 Aug 2015, 12:24
Message #6





Guests






Bonjour,

Citation (-do_ob- @ 27 Aug 2015, 05:54) *
Untel (Truc plus ou moins long).ext

Et je voudrai l'inverser en

(Truc plus ou moins long) Untel.ext

Bonjour,

Voici une solution avec un script AppleScript pour Automator :
Dans ton workflow Automator, ajoute l'action "Exécuter un script AppleScript"
Supprime le texte par défaut de l'action.
Copie/colle ce script dans l'action.

Code
on run {input}
    repeat with i in input -- chaque fichier
        tell application "System Events"
            set tName to name of i -- récupère le nom du fichier
            set name of i to my reversePart(tName) -- renomme le fichier
        end tell
    end repeat
end run

on reversePart(t)
    set {tid, text item delimiters} to {text item delimiters, {"(", ")"}}
    tell (text items of t) to if (count) = 3 then
        if item 1 ends with " " then
            set t to "(" & item 2 & ") " & (text 1 thru -2 of item 1) & item 3
        else
            set t to "(" & item 2 & ") " & item 1 & item 3
        end if
    end if
    set text item delimiters to tid
    return t
end reversePart
Go to the top of the page
 
+Quote Post
noop
posté 27 Aug 2015, 12:42
Message #7


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 964
Inscrit : 3 Nov 2005
Membre no 49 239



Voici un script shell a executer dans une fenetre Terminal. Ce script va sortir toutes les commandes de renommage de tes fichiers.
Essaye déjà de faire tout ca. Une fois que tu arrivera a exécuter l'ensemble on verra pour la dernière étape: le renommage proprement dit

1) copier le contenu ci dessous dans un fichier AU FORMAT texte avec TEXTEDIT.
Nom du fichier: renomme.sh
Marque le dossier dans lequel tu va enregister ce fichier. Pour avoir le nom COMPLET du répertoire fait Pomme I sur le fichier.

Code
OLDIFS=$IFS
IFS=
find . -type f  | grep "(" |
while read l; do
    filename=$(basename "$l")
    extension="${filename##*.}"
    filename="${filename%.*}"
    first=$(echo "$filename" | awk -F '(' '{printf("%s", $1)}' )
    shopt -s extglob
    first="${first%%*( )}"
    shopt -u extglob
    second=$(echo "$filename" | awk -F '(' '{printf("%s", $2)}' )
    second="($second"
    echo "mv \"$l\" \"${second} ${first}.${extension}\""
done



2) executer dans le terminal la commande suivante pour lui mettre un droit d'exécution

Code
chmod 700 renomme.sh


3) dans le terminal il faur changer le répertoire pour le repertoire ou se trouve tes fichier a renommer
4) lancer la commande renomme.sh en tapant son nom COMPLET

Code
/...../.../../renomme.sh


Exemple de ce que celà va te sortir:

Code
xxx:toto xxxx$ ./renomme.sh
mv "./AAA (BBB CCC DDD).mp4" "(BBB CCC DDD) AAA.mp4"
xxx:toto xxxx$

Go to the top of the page
 
+Quote Post
-do_ob-
posté 27 Aug 2015, 13:13
Message #8


Adepte de Macbidouille
*

Groupe : Membres
Messages : 179
Inscrit : 28 Apr 2008
Membre no 113 242



Noop pour être honnête j'ai tenté de suivre ta solution mais j'ai lamentablement échoué. Rien compris ou une étape me manque.
Le script de Jacqr fonctionne à merveille en tout cas.

Merci à tous les deux


--------------------
Sous 10.10.5
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 19th April 2024 - 03:37