#1 Le 03/05/2012, à 08:22
- PSImply
[RESOLU] Renommer tous les fichiers d'un dossier
Bonjour tout le monde !
Je suis nouveau dans le monde d'Ubuntu (et même de Linux en général) et j'ai une question à vous poser. Un ami m'a récemment passé un script python de sa conception qui permet de trier, et de renommer tous les épisodes d'une série.
Le problème c'est que ce script est optimisé pour Windows. J'entends par la qu'il est fait Pour déplacer les fichiers dans des sous-dossiers en ajoutant au départ Season X\
Le truc c'est que sur Ubuntu ça ne fait qu'afficher mochement cela au début du titre. Je me suis mis à les enlever un par un mais c'est fastidieux et je ne veux pas à avoir à faire cela à chaque fois.
J'ai donc essayé de modifier le script python afin de ne plus ajouter cela mais n'y connaissant rien en python, j'ai du faire un bêtise et le script marche plus j'ai donc abandonné cette option. J'ai essayé quelques commandes comme
mv ^Season\ . \\*.mkv *.mkv
mais j’obtiens un message d'erreur.
Il existe apparemment une commande sed mais je ne la comprends pas bien.
Je précise que les titres sont de la forme : Season k\0kx0"numéro épisode" : titre de l'épisode
Pouvez vous m'aider à supprimez cet élément gênant svp?
Pour les bouger après un simple
mv 0k*.mkv Season\ k/
avec une boucle sur le k fonctionne non?
Merci beaucoup d'avance !
PS je dmeanderais à mon ami s'il m'autorise à distribuer ici le script en son nom !
Dernière modification par PSImply (Le 03/05/2012, à 11:02)
Hors ligne
#2 Le 03/05/2012, à 08:41
- pingouinux
Re : [RESOLU] Renommer tous les fichiers d'un dossier
Bonjour,
La demande ne me paraît pas très claire. Peux-tu donner un exemple : nom_original_du_fichier => nom_que_tu_veux ?
Hors ligne
#3 Le 03/05/2012, à 08:45
- PSImply
Re : [RESOLU] Renommer tous les fichiers d'un dossier
Désolé :
Season "numéro saison"\ "numéro saison"x"numéro épisode" : nom de l'épisode => "numéro saison"x"numéro épisode" : nom de l'épisode
Hors ligne
#4 Le 03/05/2012, à 08:54
- serged
Re : [RESOLU] Renommer tous les fichiers d'un dossier
La solution feignant en interface graphique : PyRenamer.
Sinon en ligne de commande : rename.
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#5 Le 03/05/2012, à 08:58
- pingouinux
Re : [RESOLU] Renommer tous les fichiers d'un dossier
Est-il possible de voir le nom d'un fichier réel (avant et après) sans ajouter de " " ?
Au besoin, faire :
ls -b nom_du_fichier
Hors ligne
#6 Le 03/05/2012, à 08:59
- PSImply
Re : [RESOLU] Renommer tous les fichiers d'un dossier
Merci de ta réponse serged mais comment utiliser la commande rename optimalement stp je la trouve pas dans la doc du site ...
Mais je vais utiliser pyrename en attednant !
Hors ligne
#7 Le 03/05/2012, à 09:06
- pingouinux
Re : [RESOLU] Renommer tous les fichiers d'un dossier
Si j'ai bien compris, ceci ferait peut-être l'affaire :
for i in Seas*;do mv -i "$i" "${i#*\\ }"; done
Hors ligne
#8 Le 03/05/2012, à 09:07
- PSImply
Re : [RESOLU] Renommer tous les fichiers d'un dossier
Original : Season1\\01x01\ -\ Dexter.mkv
Voulu : 01x01\ -\ Dexter.mkv
Merci beaucoup pingouinux je vais essayer ça mais tu pourrais m'expliquer un petit peu car je n'aime pas trop utiliser des choses que je ne comprends pas
Dernière modification par PSImply (Le 03/05/2012, à 09:08)
Hors ligne
#9 Le 03/05/2012, à 09:10
- PSImply
Re : [RESOLU] Renommer tous les fichiers d'un dossier
mv: ne peut déplacer «Season 1» vers un sous-répertoire de lui-même «Season 1/Season 1»
mv: «Season1\\01x01 - Dexter.mkv» et «Season1\\01x01 - Dexter.mkv» identifient le même fichier
J'ai cette erreur pour le fichier et
et cette errreur pour chaque dossier :
mv: ne peut déplacer «Season 4» vers un sous-répertoire de lui-même «Season 4/Season 4»
Hors ligne
#10 Le 03/05/2012, à 09:13
- pingouinux
Re : [RESOLU] Renommer tous les fichiers d'un dossier
Dans ce cas, c'est plutôt :
for i in Season*;do [ -f "$i" ] && mv -i "$i" "${i#*\\}"; done
Ajouté : Dans ton exemple, il y avait un espace après le \
Season "numéro saison"\ "numéro saison"x"numéro épisode" : nom de l'épisode
Correction : Ajout d'un test pour ne pas traiter les répertoires
Dernière modification par pingouinux (Le 03/05/2012, à 09:23)
Hors ligne
#11 Le 03/05/2012, à 09:25
- PSImply
Re : [RESOLU] Renommer tous les fichiers d'un dossier
Cela fonctionne parfaitement merci beaucoup à pingouinux et à toute la communauté !
Maintenant ça te dérangerait de m'expliquer la commande ou de me passer un lien ou je pourrais la comprendre stp?
Hors ligne
#12 Le 03/05/2012, à 09:26
- PSImply
Re : [RESOLU] Renommer tous les fichiers d'un dossier
Comment mettre le topic en résolu svp?
Hors ligne
#13 Le 03/05/2012, à 09:56
- pingouinux
Re : [RESOLU] Renommer tous les fichiers d'un dossier
Explication sur la commande du #10 :
Boucle sur tout ce qui commence par Season (fichiers et dossiers)
On n'exécute mv que si on a affaire à un fichier : [ -f "$i" ]
${i#*\\} : nom du fichier auquel on a retiré le début (jusqu'au \)
Voir man bash, rubrique Expansion des paramètres
Pour mettre en Résolu, éditer le message #1 et ajouter [Résolu] dans le titre.
Hors ligne
#14 Le 03/05/2012, à 11:01
- PSImply
Re : [RESOLU] Renommer tous les fichiers d'un dossier
D'accord je vias voir ça merci beaucoup pour ces explications !
Hors ligne