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 19/11/2013, à 09:13

littletower

Script pour renommer en masse

Bonjour,

Je débute sur linux serveur, j'ai monté un petit site web sur joomla et j'ai un répertoire contenant des dizaines d'images que je souhaite renommer.

J'ai bien chercher sur la doc, sur le site et google mais les scripts trouvés ne correspondent pas du tout à ce que je cherche à faire.

Voici ce que je recherche, j'ai des fichiers sous ce format là :

jeu-sans-obligation-d-achat-fete-1an-Pouette-1.jpg
PoueTTe-a-la-montagne-2.jpg
truc-pouette-camping-photos.png

Je cherche un script qui saurait remplacer le mot "pouette" (quelque soit sa casse) uniquement sans modifier cette casse justement ni l'extension (.jpg ou .png)

Je vous serai vraiment reconnaissant de m'aider, je suis un débutant en shell, merci.

Hors ligne

#2 Le 19/11/2013, à 09:26

pingouinux

Re : Script pour renommer en masse

Bonjour,
Si tu veux remplacer le mot "pouette" sans modifier la casse, il faut que ce soit par un mot de même longueur. Est-ce bien cela que tu veux ?

Hors ligne

#3 Le 19/11/2013, à 11:20

littletower

Re : Script pour renommer en masse

Bonjour pingouinux,

Je cherche à changer le mot pouette par un mot plus court d'une lettre en fait. Mais bon à la limite si je peux trouver un script qui me renomme automatiquement le mot en question quelque soit sa casse en minuscule ça me retirera une grosse épine du pied ! smile

Hors ligne

#4 Le 19/11/2013, à 11:53

didier_62

Re : Script pour renommer en masse

installe Pyrenamer. Tu pourras remplacer Pouette par ce que tu veux et pas forcément de la même longueur...et pyrenamer fait bien plus encore.

Hors ligne

#5 Le 19/11/2013, à 12:03

Logo1

Re : Script pour renommer en masse

Il y a aussi métamorphose...

Hors ligne

#6 Le 19/11/2013, à 12:30

littletower

Re : Script pour renommer en masse

C'est sympa mais ce sont des outils pour station de travail, je suis sur ubuntu-serveur

Bonjour,

Je débute sur linux serveur,

Je crois que je vais devoir tout renommer à la main, l'angoisse ! :x

Hors ligne

#7 Le 19/11/2013, à 12:35

pingouinux

Re : Script pour renommer en masse

Voici un script en python :

#!/usr/bin/python

import sys, re, os

rec=re.compile('.*/?[^/]*(pouette)[^/]*',re.I)
rep,new=sys.argv[1:3]
os.chdir(rep)

def modif(s,s1) :
   ls=len(s); ls1=len(s1)
   ret=''
   for k in range(min(ls,ls1)) :
      c=s[k]; c1=s1[k]
      if   c.isupper() : ret+=c1.upper()
      elif c.islower() : ret+=c1.lower()
      else :            ret+=c1
   if ls<ls1 : ret+=s1[ls:]
   return ret

for f in os.listdir('.') :
   if os.path.isdir(f) : continue
   k=rec.match(f)
   if k :
      f1=f[:k.start(1)]
      f1+=modif(k.group(1),new)
      f1+=f[k.end(1):]
      print(f,f1)
#     os.rename(f,f1)

Tu le sauves sous le nom pouette.py, par exemple, et tu lui donnes la permission d'exécution

chmod u+x pouette.py

Pour l'utiliser :

./pouette.py répertoire_où_sont_tes_fichiers mot_qui_va_remplacer_pouette

Tu devrais obtenir la liste des anciens et nouveaux noms (le script tel qu'il est ne fait rien d'autre).
Si c'est bon, tu décommentes la dernière ligne (remplacement de # par un espace, et tu relances.

Hors ligne

#8 Le 19/11/2013, à 13:30

littletower

Re : Script pour renommer en masse

Merci pour le script mais malheureusement il ne fonctionne pas sur mon serveur, ça me met :

File "./6_rename_fichiers", line 6, in <module>
rep,new=sys.argv[1:3]
ValueError: need more than 0 values to unpack

Tant pis j'ai téléchargé toutes les images sur mon PC sous windows, j'ai utilisé un logiciel de renommage et j'ai uploadé les images, ça fonctionne nickel.

Merci quand même et bonne continuation à vous. wink

Hors ligne

#9 Le 19/11/2013, à 13:40

pingouinux

Re : Script pour renommer en masse

Le script doit être appelé avec 2 paramètres, comme indiqué en #7.

Hors ligne