J'ai un ensemble de fichiers, tous nnn.MP4.mov
comment pourrais-je les renommer pour que ce soit juste nnn.mov
?
Tout d'abord, effectuez un essai à sec (ne renommera en fait aucun fichier) avec les éléments suivants:
for file in *.mov
do
echo mv "$file" "${file/MP4./}"
done
Si tout semble correct, supprimez le echo
de la troisième ligne pour renommer réellement les fichiers.
J'ai utilisé avec succès Automator (la première fois que je me suis dérangé), et cela fonctionne très bien. J'ai enregistré l'automatisation en tant que service. Il a fallu environ 10 secondes pour rendre quelque chose facilement réutilisable:
Vous pouvez maintenant cliquer avec le bouton droit sur n'importe quelle sélection du Finder, aller dans le menu Service et sélectionner "Remplacer le texte", indiquer comment vous voulez que le texte soit modifié ou remplacé - et cliquez sur "Continuer" pour appliquer les modifications configurées.
for n in *.MP4.mov
do
mv $n $(echo $n | sed -e 's/.MP4//')
done
Cela fonctionnera même sur de très vieux shells qui n'ont pas de substitution de paramètres, et c'est un peu plus lisible à mes yeux au moins.
Pour tester l'impression de l'opération:
for file in *.MP4.mov; do j=`echo $file | cut -d . -f 1`;j=$j".mov";echo mv \"$file\" \"$j\"; done
Pour le faire fonctionner:
for file in *.MP4.mov; do j=`echo $file | cut -d . -f 1`;j=$j".mov";mv "$file" "$j"; done
Sur mac OSX, vous pouvez installer la commande rename
via Homebrew: brew install rename
Ensuite, vous pouvez renommer en utilisant find/replace à partir de ce dossier sur la ligne de commande:
rename 's/\.MP4\././' *
Vous pouvez également voir plus d'options en utilisant man rename
.
OS X a un Rename Files…
élément de menu contextuel qui est invoqué lorsque vous sélectionnez deux ou plusieurs fichiers dans le Finder. Fournit la même fonction que la réponse Automator ci-dessus. Bien que Automator vous fournisse les outils pour aller plus loin si vous le souhaitez.
(Je sais que OP a demandé le terminal, mais 33 autres personnes aiment la réponse Automator)
vimv vous permet de renommer plusieurs fichiers en utilisant les capacités d'édition de texte de Vim.
La saisie de vimv ouvre une fenêtre Vim qui répertorie tous les fichiers et vous pouvez effectuer une correspondance de modèle, une sélection visuelle, etc. pour modifier les noms. Après avoir quitté Vim, les fichiers seront renommés.
[Avertissement: je suis l'auteur de l'outil]
for i in `ls *png`;do echo mv $i "${i%%.*}"@xx."${i##*.}";done
for i in *;
do j=`echo $i | cut -d . -f 1`;
j=$j".mov";
mv $i $j;
done
cela coupe tout avant le premier point et ajoute .mov
mais si certains fichiers sont par exemple hi.2.mov et hi.1.mov one seront écrasés, alors utilisez-les soigneusement ^^
ls -1 *.MP4.mov | while read f; do mv -i "$f" "$(basename \"$f\" .MP4.mov)"; done
Edit: entièrement réécrit.