bash, fichiers, renommer les fichiers, changer de position
Comment renommer
sluno-20201027-call-metroua-status.mp4
sluno-20201103-call-deriva.mp4
sluno-20201103-call-metroua-status.mp4
sluno-20201105-call-makrocz.mp4
sluno-20201105-call-metroua-testcall.mp4
sluno-20201105-call-sluno-ggtabak.mp4
sluno-20201110-call-makrocz.mp4
sluno-20201110-call-metroua-status.mp4
sluno-20201110-call-sluno-utccz.mp4
à
sluno-call-metroua-status-20201027.mp4
sluno-call-deriva-20201103.mp4
sluno-call-metroua-status-20201103.mp4
sluno-call-makrocz-20201105.mp4
...
Déplacez simplement la date / chaîne sur la position 7-14
à la fin du nom du fichier.
Merci.
Réponses
mmv fonctionne bien pour le changement de nom de fichier simple .
mmv '*-*-*-*.mp4' '#1-#3-#4-#2.mp4'
Il peut également être utile d'avoir quelques points de référence supplémentaires pour être sûr de ne pas changer le nom sur autre chose, en particulier là où il peut y avoir d'autres fichiers dans le même répertoire.
mmv 'sluno-[0-9]*-call-[a-z]*.mp4' 'sluno-call-#3#4-#1#2.mp4'
^ ^ ^ ^
1 2 3 4
sluno-20201027-call-metroua-status.mp4
^------- ^-------------
1 2 3 4
Si je devais le faire avec le strict minimum, mv
et bash
j'irais avec une boucle bash
for et une correspondance BRE intégrée.
for i in *.mp4; do \
[[ $i =~ ^sluno-(.*)-call-(.*).mp4 ]] && \ mv -- "$i" "sluno-call-${BASH_REMATCH[2]}-${BASH_REMATCH[1]}.mp4"; \
done
Utilisez rename
:
rename -n 's/^(.*?)-(.*?)-(.*?)(\.mp4)$/$1-$3-$2$4/' *.mp4
Supprimez le -n
si vous êtes satisfait de la sortie.
Pour une explication, visitez ceci .
Une autre option:
$ qmv {modèle}
déposera 2 colonnes de noms de fichiers dans l'éditeur de votre choix.
Modifiez la colonne de droite pour avoir les noms de fichiers souhaités.
La colonne de gauche est le nom d'origine. La colonne de début du bon groupe ne peut pas être modifiée, donc l'auto-wrap peut vous gêner.
Entre les mains d'un expert avec chaque éditeur, cela peut être très rapide, en particulier pour la colonne vim et les modes visuels.
En général, j'utilise renommer, mais pour des besoins complexes, voir les noms exacts dans l'éditeur est bien.