Modifier nom de plusieurs fichiers

Résolu/Fermé
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 - 26 juil. 2011 à 10:10
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 - 26 juil. 2011 à 12:35
Bonjour,

j'ai un dossier qui contient beaucoup de fichiers .mp3 et ils sont constitués de cette manière : "chanteur - titre.mp3". Mon but est de les nommer ainsi : "titre - chanteur.mp3". Mais je ne veux pas faire ça un par un !!
Je pense que la solution est avec le terminal (je suis sous Ubuntu 11.04).

Merci

8 réponses

kevin76110 Messages postés 4273 Date d'inscription vendredi 14 août 2009 Statut Membre Dernière intervention 27 mars 2013 872
26 juil. 2011 à 10:13
En effet, il faut que tu fasse un script bash pour ça.
Va sur le site du zero pour apprendre ce langage car je ne le connais que trop peu.
0
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
26 juil. 2011 à 10:15
Merci mais je n'ai pas trop envie d'apprendre un langage juste pour ça ^^

S'il vous plaît, si quelqu'un connait ce langage, pourriez-vous me donner ce script ??
Merci
0
kevin76110 Messages postés 4273 Date d'inscription vendredi 14 août 2009 Statut Membre Dernière intervention 27 mars 2013 872
26 juil. 2011 à 10:19
'lut,

Si tu ne connais pas, apprends.
Si tu veux tout sans rien avoir à faire, tu ne trouveras pas d'aide.
0
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
Modifié par brute le 26/07/2011 à 10:25
Non non mais attend, c'est pas comme si j'avais besoin de créer mon site où là je dois apprendre l'xHTML, le CSS, le Javascript, le PHP.... Là j'ai juste besoin d'un petit script qui va me servir (sûrement) une seule fois, alors je pense être en droit de demander de l'aide si j'en ai besoin !!
0
kevin76110 Messages postés 4273 Date d'inscription vendredi 14 août 2009 Statut Membre Dernière intervention 27 mars 2013 872
26 juil. 2011 à 10:36
Cela t'empêche t'il de chercher un minimum ?
Le bash te servira certainement + qu'une fois.
Et quand on veut faire quelque chose, et qu'on ne sait pas le faire, 2 solutions : apprendre ou ne pas faire.
Et vu que tu veux le faire, je ne vois qu'une seule solution ...
0
Franzux Messages postés 8907 Date d'inscription mercredi 5 décembre 2007 Statut Contributeur Dernière intervention 27 octobre 2015 1 145
26 juil. 2011 à 10:41
Enfin là ce n'est pas le bout du monde de lui filer un coup de main pour un peu de bash... en plus ça permet à ceux qui, comme moi, n'y ont pas mis le nez depuis un peu de temps de réfléchir un peu...
0
HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 607
26 juil. 2011 à 10:44
Kevin, j'ai besoin de changer une roue sur ma voiture, il faut impérativement que j'apprenne la mécanique ? Non, ben ici c'est pareil. Il a un besoin ponctuel, c'est totalement différent de ceux qui viennent ici avec leur idée de site web, et aucune volonté pour apprendre un langage (alors que leur besoin sera tout sauf ponctuel).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
26 juil. 2011 à 10:27
0
Creutzou Messages postés 550 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 30 mai 2013 30
26 juil. 2011 à 10:50
Excellent le lien, je ne le connaissais pas. Et hop hop , dans les favoris.
0
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
26 juil. 2011 à 10:31
Merci mais comment séparer le nom de fichier en plusieurs chaînes ?? Mettre ces chaînes dans un array, quoi ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
26 juil. 2011 à 10:34
Affiches quelques exemples des différents noms de fichiers qu'on peut trouver dans ton dossier. (ls -1)
0
Franzux Messages postés 8907 Date d'inscription mercredi 5 décembre 2007 Statut Contributeur Dernière intervention 27 octobre 2015 1 145
26 juil. 2011 à 10:34
Avec awk !
0
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
26 juil. 2011 à 10:36
Par exemple : "Calogero - Yalla.mp3" et "Charlie Winston - Like A Hobo.mp3" et j'aimerais :
"Yalla - Calogero.mp3" et "Like A Hobo - Charlie Winston.mp3".

Voilà
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
26 juil. 2011 à 11:00
A adapter :

$ ls -1
Calogero - Yalla.mp3
Charlie Winston - Like A Hobo.mp3

$ ls -1 | sed 's/\([^-]*\) - \([^\.]*\)\(.*\)/\2 - \1\3/'
Yalla - Calogero.mp3
Like A Hobo - Charlie Winston.mp3

;-))
0
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
26 juil. 2011 à 11:03
Et je dois bien indiquer le dossier, non ?? oO
0
kevin76110 Messages postés 4273 Date d'inscription vendredi 14 août 2009 Statut Membre Dernière intervention 27 mars 2013 872
26 juil. 2011 à 10:34
Et 1 flémard de +, 1 !
0
HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 607
26 juil. 2011 à 10:36
Heu tu abuses un peu là... tu lui conseilles d'apprendre le shell alors qu'il a juste un besoin temporaire, sachant aussi qu'une solution graphique lui conviendrait...

Quant à l'insulter, je ne cautionne pas...
0
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
26 juil. 2011 à 10:39
Merci HostOfSeraphim ^^
0
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
26 juil. 2011 à 12:35
Merci beaucoup donc la solution est celle-ci :

$ cd /répertoire/mes_musiques

$ ls -1

$ for i in *; do mv -v "${i}" "$(echo ${i} | sed 's/\([^-]*\) - \([^\.]*\)\(.*\)/\2 - \1\3/')";done


Voilà !!
Encore merci ! =D
0