Renommage de fichiers en masse ?
Quelle ligne de commande pour renommer intelligemment des fichiers ?
Système et matériels / Installation et configuration

matthieu Membre non connecté
-
- Voir le profil du membre matthieu
- Inscrit le : 14/09/2014
je sais que ma question concerne plus largement Linux que spécifiquement Mageia, mais bon, comme c'est ma distrib, je me lance...
Je voudrais renommer d'un coup tous mes répertoires de musique en passant de cette structure :
-> Nom du groupe - Nom de l'album (aaaa)
(aaaa) étant une année, sur 4 chiffres
A cette structure :
-> Nom du groupe - aaaa - Nom de l'album
Je sais que les lignes de commandes peuvent être surpuissantes, alors je demande si c'est jouable sans trop de prose de tête....
Merci si vous avez une idée


Meuz Membre non connecté
-
- Voir le profil du membre Meuz
- Inscrit le : 06/08/2011
- Groupes :
meuz@localhost ~]$ echo "azer - qsdf 1234"| sed -e 's/(-.*) (.*)/- 2 1/'
azer - 1234 - qsdf
azer - 1234 - qsdf

Meuz Membre non connecté
-
- Voir le profil du membre Meuz
- Inscrit le : 06/08/2011
- Groupes :
IFS="n";for i in *;do mv $i $(echo $i | sed -e 's/(-.*) (.*)/- 2 1/');done
Mes tests.
Je crée 3 fichiers avec ton type de nom de fichier, je liste, je lance ma commande, je liste.
[meuz@localhost test]$ touch "azer - qsdf 1234"
[meuz@localhost test]$ touch "wxcvf - dfghrt 7458"
[meuz@localhost test]$ touch "qszd - sdfg 1452"
-rw-r--r-- 1 meuz meuz 0 févr. 13 17:14 azer - qsdf 1234
-rw-r--r-- 1 meuz meuz 0 févr. 13 17:14 qszd - sdfg 1452
-rw-r--r-- 1 meuz meuz 0 févr. 13 17:14 wxcvf - dfghrt 7458
[meuz@localhost test]$ IFS="n";for i in *;do mv $i $(echo $i | sed -e 's/(-.*) (.*)/- 2 1/');done
[meuz@localhost test]$ ls -l
total 0
-rw-r--r-- 1 meuz meuz 0 févr. 13 17:10 azer - 1234 - qsdf
-rw-r--r-- 1 meuz meuz 0 févr. 13 17:10 qszd - 1452 - sdfg
-rw-r--r-- 1 meuz meuz 0 févr. 13 17:10 wxcvf - 7458 - dfghrt
[meuz@localhost test$]
[meuz@localhost test]$ touch "wxcvf - dfghrt 7458"
[meuz@localhost test]$ touch "qszd - sdfg 1452"
-rw-r--r-- 1 meuz meuz 0 févr. 13 17:14 azer - qsdf 1234
-rw-r--r-- 1 meuz meuz 0 févr. 13 17:14 qszd - sdfg 1452
-rw-r--r-- 1 meuz meuz 0 févr. 13 17:14 wxcvf - dfghrt 7458
[meuz@localhost test]$ IFS="n";for i in *;do mv $i $(echo $i | sed -e 's/(-.*) (.*)/- 2 1/');done
[meuz@localhost test]$ ls -l
total 0
-rw-r--r-- 1 meuz meuz 0 févr. 13 17:10 azer - 1234 - qsdf
-rw-r--r-- 1 meuz meuz 0 févr. 13 17:10 qszd - 1452 - sdfg
-rw-r--r-- 1 meuz meuz 0 févr. 13 17:10 wxcvf - 7458 - dfghrt
[meuz@localhost test$]
Fais des tests avant toutes modifications définitives. Ceci n'est qu'un prototype, je ne serai pas responsable en cas de problème.

Visiteur
Visiteur
Z'avez pas plus compliqué ?

Easytag fait ça très bien

Meuz Membre non connecté
-
- Voir le profil du membre Meuz
- Inscrit le : 06/08/2011
- Groupes :
De toutes façons, il m'a demandé "ligne de commandes"

Edit
@ sylvainsjc
Vu.
Édité par Meuz Le 13/02/2015 à 18h53

Visiteur
Visiteur

seb95 Membre non connecté
-
- Voir le profil du membre seb95
- Inscrit le : 26/08/2007
- Site internet
- Groupes :


xuo Membre non connecté
-
- Voir le profil du membre xuo
- Inscrit le : 23/10/2011
- Groupes :
krename devrait en effet le faire, simplement, je ne suis pas sûr.
A mon avis, il faudra utiliser une expression régulière comme (je ne l'ai pas vérifiée) :
(.+) - (.+)(d+)$
1 - 3 - 2
Xuo.

matthieu Membre non connecté
-
- Voir le profil du membre matthieu
- Inscrit le : 14/09/2014

Un grand merci pour toutes ces solutions !


Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
Je suis en revanche curieux de savoir quel logiciel tu as choisi !

Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !

Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie