189 votes

Renommez tous les fichiers du répertoire de $ filename_h en $ filename_half?

Mort simple.

Comment puis-je renommer

 05_h.png
06_h.png
 

à

 05_half.png
06_half.png
 

Au moins, je pense que c'est simple, mais il est difficile de Google pour ce genre de chose à moins que vous ne le sachiez déjà.

Merci....

382voto

bash-o-logist Points 2088

Il suffit d'utiliser bash, pas besoin d'appeler des commandes externes.

 for file in *.png
do
  mv "$file" "${file/_h.png/_half.png}"
done
 

Ne pas ajouter #!/bin/sh

78voto

Michał Šrajer Points 9487

Essayez la commande rename :

 rename 's/_h.png/_half.png/' *.png
 

Mise à jour:

exemple d'utilisation:

créer du contenu

 $ mkdir /tmp/foo
$ cd /tmp/foo
$ touch one_h.png two_h.png three_h.png
$ ls 
one_h.png  three_h.png  two_h.png
 

solution de test:

 $ rename 's/_h.png/_half.png/' *.png
$ ls
one_half.png  three_half.png  two_half.png
 

15voto

Karoly Horvath Points 45145
for f in *.png; do
  fnew=`echo $f | sed 's/_h.png/_half.png/'`
  mv $f $fnew
done

13voto

Sorpigal Points 10412

Vous êtes à la recherche pour un pur bash solution? Il existe de nombreuses approches, mais en voici une.

for file in *_h.png ; do mv "$file" "${file%%_h.png}_half.png" ; done

Cela suppose que les seuls fichiers dans le répertoire en cours qui se terminent en _h.png sont ceux que vous souhaitez renommer.

Beaucoup plus spécifiquement

for file in 0{5..6}_h.png ; do mv "$file" "${file/_h./_half.}"

En supposant que ces deux exemples sont vos seules. les fichiers.

Pour le cas général, renommer des fichiers en a été couverts avant de.

7voto

Fredrik Pihl Points 20944

Utilisez l'utilitaire rename écrit en perl. Peut-être qu'il n'est pas disponible par défaut cependant ...

 $ touch 0{5..6}_h.png

$ ls
05_h.png  06_h.png

$ rename 's/h/half/' *.png

$ ls
05_half.png  06_half.png
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X