web-dev-qa-db-fra.com

Renommer de nombreux fichiers sous Mac OS X, traitement par lots

J'avais l'habitude de renommer le fichier sous Linux via une commande de changement de nom:

rename 's/old_pattern/new_pattern/g' *glob

Y a-t-il quelque chose de similaire dans Mac OS X (Snow Leopard)?

54
math

Clumsy moi:

for i in *.yourfiles; do mv "$i" "`echo $i | sed 's/old/new/g'`"; done 

Et si vous voulez l'utiliser comme je le fais souvent de cette façon:

rename 's/old/new/' *.files

Je recommande d'utiliser ce petit script dans ~/bin/rename:

#!/usr/bin/env zsh
SUBSEXPR=$1
shift
for i in $@; do mv $i `echo "$i" | sed $SUBSEXPR`; done
21
math

Avec Homebrew , un gestionnaire de paquets pour OS X:

brew install rename 

Ensuite, vous pouvez exécuter les mêmes commandes rename que sous Linux.

48
juanpablo

Utilisez le pouvoir de ZSH à bon escient (tapez zsh dans le terminal si vous êtes l’une de ces pauvres âmes qui ne l’utilisent pas par défaut):

autoload zmv
zmv '(*).htm' '$1.html'

ZMV suit la syntaxe MMV .

26
ghoppe

Vous pouvez essayer d’installer MacPorts et d’installer le paquetage renameutils:

renameutils @ 0.10.0 (sysutils)

renameutils est un ensemble de programmes conçus pour rendre le changement de nom de fichier plus rapide et moins encombrant.

4
lajuette

Il existe différentes versions de renommer. On dirait que vous recherchez celui basé sur Perl.

Une version de cet utilitaire est fournie avec le module Perl File :: Rename . Vous pouvez l'installer avec quelque chose comme Sudo cpan -i File::Rename.

Ou bien, vous pouvez utiliser le renommerà partir du Perlpaquet de Debian . Ce n'est qu'un fichier à télécharger. Mettez-le où vous voulez et chmodit pour qu'il soit exécutable.


Une alternative est l'outil zmvfourni avec zsh . Il n’a pas la même syntaxe, mais il est fourni avec votre système d’exploitation et il peut facilement prendre en charge de nombreux cas courants.

4
Chris Johnsen

Sur les Mac, j'utilise la variable rename librement disponible d'Aristotle Pagaltzis, qui, comme Debian, est basée sur Perl. Vous pouvez l'obtenir ici . Ou visitez ici pour le lire en premier - toujours une bonne idée.

Vous devez placer cela quelque part dans votre $PATH et le rendre exécutable (chmod +x rename), puis vous êtes prêt à partir.

2
Telemachus

Cela ne devrait pas être difficile mais apparemment ça l'est. Exemple, je veux renommer tous les fichiers de l'extension aiff en aifc.

find . -iname "*.aiff" -exec bash -c 'mv "$0" "${0%\.aiff}.aifc"' {} \;
2
AlexanderN

Si vous recherchez une interface graphique, essayez Nom Mangler . Il a une fonctionnalité "aperçu" qui montre ce qui se passera si vous suivez le renommage.

1
Peter Murray

la commande équivalente dans renommant (multiplate-forme) est

$ renamer --regex --find 'old_pattern' --replace 'new_pattern' *glob
1
Lloyd

Si vous aimez le multisélection de Sublime Text, vous pouvez l'utiliser avec qmv:

qmv --editor = "/ usr/bin/s3 -w" fichiers

0
Gordon Wells