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 31/03/2008, à 04:53

soupaloignon

[Résolu] changer des extensions différentes en une seule avec rename

Bonjour,

Je voudrais changer plusieurs extensions de fichiers (.JPG .JPEG . jpeg) en .jpg

Jusqu'à présent j'utilisais

#! /bin/bash

rename 's/(.*)\.JPG/$1\.jpg/' *.JPG
rename 's/(.*)\.JPEG/$1\.jpg/' *.JPEG
rename 's/(.*)\.jpeg/$1\.jpg/' *.jpeg

qui fonctionne très bien d'ailleurs.

Juste pour le fun je voudrais savoir s'il est possible de passer ça en 1 seule ligne de commande, et donc comment écrire les .JPG .JPEG . jpeg dans cette ligne de commande.

Merci pour vos avis éclairés wink

Dernière modification par soupaloignon (Le 31/03/2008, à 12:03)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#2 Le 31/03/2008, à 06:16

abetsic

Re : [Résolu] changer des extensions différentes en une seule avec rename

Bonjour,

Peut être quelque chose comme ça :

rename 's/(.*)\.[Jj][Pp][eE]?[Gg]/$1\.jpg/' *

Hors ligne

#3 Le 31/03/2008, à 11:18

soupaloignon

Re : [Résolu] changer des extensions différentes en une seule avec rename

abetsic a écrit :

Bonjour,

Peut être quelque chose comme ça :

rename 's/(.*)\.[Jj][Pp][eE]?[Gg]/$1\.jpg/' *

Bonjour et merci pour ta réponse. Mais cela ne fonctionne pas. PAr contre je n'aipas trop compris le "?" au milieu de la ligne de code.

J'ai essayé :

 rename 's/(.*)\.[JPG][JPEG][jpeg]/$1\.jpg/' *
rename 's/(.*)\.[JPG][JPEG][jpeg]?/$1\.jpg/' *
rename 's/(.*)\.[JPG][JPEG][jpeg]?/$1\.jpg/' *

Dernière modification par soupaloignon (Le 31/03/2008, à 11:18)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#4 Le 31/03/2008, à 11:29

Alain.g

Re : [Résolu] changer des extensions différentes en une seule avec rename

salut

La ligne de abetsic devrait fonctionner, par contre :
- pour rendre insensible à la case, il faut utiliser le modificateur /i
- inutile de capturer la première partie du nom, utiliser $ (fin de chaîne)

ça donnerait :

rename 's/\.jpe?g$/.jpg/i' *

Le point d'interrogation sert à indiquer que le "e" peut être présent une ou zéro fois.

Dernière modification par Alain.g (Le 31/03/2008, à 11:30)


Xubuntu Karmic !

Hors ligne

#5 Le 31/03/2008, à 12:02

soupaloignon

Re : [Résolu] changer des extensions différentes en une seule avec rename

Merci à vous 2 pour vos informations

abetsic : Ta ligne de code fonctionne effectivement, au temps pour moi. Comme je n'avais pas compris l'utilité du "?", ni même d'ailleurs la structure, je l'avais modifié.

Alain.g : La tienne fonctionne aussi, et merci pour les explications wink (j'ai un peu de temps en ce moment, donc je me replonge dans le fignolage du script des exif et iptc)

Dernière modification par soupaloignon (Le 31/03/2008, à 12:04)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#6 Le 31/03/2008, à 12:17

Alain.g

Re : [Résolu] changer des extensions différentes en une seule avec rename

sinon un exemple pour changer l'extension de manière récursive avec find :

find . -type f -iregex '.*\.jpe?g$' -exec rename 's/\.\w+$/.jpg/' {} \;

Xubuntu Karmic !

Hors ligne