Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/07/2008, à 21:04

pronoiaque

Bash: Changer la case recursivement ... bof :-(

Salut tout le monde.

Je cherche le bout de code magique pour changer la case un type de fichier en récursif... et je m'efforce d'éviter de faire des boucles:

find ./ -name '*.JPG' -type f -execdir mv {} `echo {} | tr [:upper:] [:lower:]` \;

mais bof sad

mv: `./IMG_0000.JPG' et `./IMG_0000.JPG' identifient le même fichier.
mv: `./IMG_0001.JPG' et `./IMG_0001.JPG' identifient le même fichier.

La finalité étant d'éviter les doublons de photos importés en masse d'une carte mémoire en FAT™

Merci d'avance !

#2 Le 07/07/2008, à 21:31

pronoiaque

Re : Bash: Changer la case recursivement ... bof :-(

pff... la casse pas la case

#3 Le 07/07/2008, à 21:50

Spalax

Re : Bash: Changer la case recursivement ... bof :-(

find ./ -name '*.JPG' -type f -execdir rename -n 's/.*/\L&/' {} \+

Ceci devrait t'afficher les changements qui seraient faient, sans rien modifier.
Enlève le "-n" pour effectuer effectivement ces changements.

Hors ligne

#4 Le 07/07/2008, à 22:03

pronoiaque

Re : Bash: Changer la case recursivement ... bof :-(

J'obtiens une erreur :

./IMG_0001.JPG not renamed: & already exists

Par contre ça fonctionne avec:

find ./ -name '*.JPG' -type f -execdir rename -f 'y/A-Z/a-z/' {} \+

Nickel Chrome
Merci beaucoup Spalax

Dernière modification par pronoiaque (Le 07/07/2008, à 22:09)


"la télé commande" -  AntiPubs Spotify

Hors ligne

#5 Le 07/07/2008, à 23:24

Alain.g

Re : Bash: Changer la case recursivement ... bof :-(

salut

On peut utiliser convmv pour cela.
Exemple :

convmv -r --lower --notest *

-r : recursif
--lower : en minuscule
--notest : l'enlever d'abord pour voir ce que ça va donner

Dernière modification par Alain.g (Le 07/07/2008, à 23:30)


Xubuntu Karmic !

Hors ligne