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 22/06/2007, à 12:35

Zafo

[Résolu] Renommer des photos avec rename

Bonjour à tous,

Après moult recherches et moult trouvailles... je pose quand même la question, car ce que j'ai trouvé ne fait que m'embrouiller un peu plus (rien de très bien clair).

Je souhaiterais renommer toute une série de photos genre DSCN0850.JPG en image1.jpg image2.jpg ...
Utilisateur du terminal, une commande sympa ne me dérange pas du tout (bien au contraire !). J'ai trouvé qu'il était possible de le faire avec rename qui utilise des expressions régulières... mais là je n'y connais rien. Je vous demande donc si quelqu'un aurait l'immense amabilité de m'écrire cette petite commande afin que je puisse parvenir à mes besoins (en bash je prends aussi).

Merci d'avance !

Dernière modification par Zafo (Le 22/06/2007, à 21:36)


I know you believe you understand what you think I said, but I am not sure you realize that what you heard is not what I meant.

Hors ligne

#2 Le 22/06/2007, à 14:22

Hoxus

Re : [Résolu] Renommer des photos avec rename

Salut,
Je pense pouvoir te le faire en Perl (je l'ai fait sous windows).
Donc si personne d'autre ne te réponds, je me pencherais la dessus.


Ubuntu 9.10

Ne rien dire, c'est se taire !!

Hors ligne

#3 Le 22/06/2007, à 15:10

SnakemaN

Re : [Résolu] Renommer des photos avec rename

Attention c'est un truc brutasse ! lol

Ca renomme tous les fichier commencant par "DSCN" du dossier en image%d.jpg comme tu voulais

#!/bin/bash
#
# Renommeur de photo
# A partir du repertoire passé en parametre il renomme toutes
# les photos commençant par DSCN en image%d.jpg
#USAGE : ./renamer.sh </chemin/du/repertoire/>

count=0
MYPATH=$1

cd $MYPATH

for image_jpg in `ls $MYPATH|grep -e [DSCN]`
do
mv $image_jpg image$count.jpg
count=$((count + 1))
done

Tu creer un fichier renomeur.sh

$ touch renomeur.sh

par exemple, tu y colle ceci puis tu y met les droits d'exe (plus simple)

$ chmod 775 renomeur.sh

puis exemple :

$ ./renomeur /home/moi/mesphotos/

Dernière modification par SnakemaN (Le 22/06/2007, à 15:19)


"Bon chat n'a besoin de beau collier d'or "
Membre du Groupe des Parrains Linux

Hors ligne

#4 Le 22/06/2007, à 16:28

Julian

Re : [Résolu] Renommer des photos avec rename

Salut,

Voici un modeste script en python qui gère les extensions et te crée une suite de type : image_xxx.extension

Libre à toi de rajouter autant d'extensions que tu désires, le fonctionnement de ce script est assez compréhensible :

#! /usr/bin/env python

import os, sys

count = 1

for x in os.listdir('.'):
    if x[-4:] == '.jpg':
        os.rename(x, ('image_%03d.jpg' % count)) 
        count = count + 1
    elif x[-4:] == '.JPG':
        os.rename(x, ('image_%03d.jpg' % count)) 
        count = count + 1
    elif x[-4:] == '.png':
        os.rename(x, ('image_%03d.png' % count)) 
        count = count + 1
    elif x[-4:] == '.tiff':
        os.rename(x, ('image_%03d.tiff' % count)) 
        count = count + 1
    elif x[-4:] == '.gif':
        os.rename(x, ('image_%03d.gif' % count)) 
        count = count + 1
    elif x[-4:] == '.bmp':
        os.rename(x, ('image_%03d.bmp' % count)) 
        count = count + 1

Ce fichier doit être enregistré en ".py", rename.py par exemple, et executer de la sorte dans le bon répertoire :

python rename.py

Bien entendu, fais d'abord des tests sur des copies, c'est pas du 100% garanti non plus wink


julian@jabber.fr

Hors ligne

#5 Le 22/06/2007, à 21:36

Zafo

Re : [Résolu] Renommer des photos avec rename

Ah, c'est bien gentil à vous tout ça. J'ai opté pour le dernier en python, il paraît plus flexible que les autres. Mais j'ai quand même noté la solution bash, histoire de m'amuser un peu !
Un grand merci en tout cas ! big_smile


I know you believe you understand what you think I said, but I am not sure you realize that what you heard is not what I meant.

Hors ligne