#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 !
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.
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