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 26/02/2006, à 21:42

thierryg

Re-numéroter des fichiers en masse

Bonjour à tous,
Quelqu'un peut-il me donner une idée pour incrémenter de p la numérotation d'une série de fichiers d'un répertoire.
C'est à dire faire passer chaque fichier de foo_n à foo_(n+p).
Merci d'avance.

Hors ligne

#2 Le 27/02/2006, à 09:56

Bismut

Re : Re-numéroter des fichiers en masse

Krename ? wink


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne

#3 Le 27/02/2006, à 10:22

sksbir

Re : Re-numéroter des fichiers en masse

C'est facile de faire ça en shell :

cd /le_repertoire_qui_contient_tes_fichiers
P=8 (par exemple)
for X in *
do
Y=`echo $X|cut -c-5- `
Y=`expr $Y + $P `
echo mv $X foo_$Y
done

Tu peux le taper tel quel dans un terminal, ou le sauver dans un fichier puis l'exécuter par sh monfichier

Précision importante : Le script ne touche à rien, et se contente d'afficher les commandes mv qui feront le renommage. (c'est d'autant plus important que je n'ai pas pu tester le script moi-même).
Donc tu peux l'exécuter sans aucun risque, et une fois que le résultat te plait, tu peux alors enlever l'instruction "echo" devant mv pour réellement exécuter les renommages.

ps : il y a quelques limitation dans cet exemple : par exemple, pas d'espace dans les noms des fichiers, sinon le script ne fera pas les renames...

Dernière modification par sksbir (Le 27/02/2006, à 18:07)

Hors ligne

#4 Le 27/02/2006, à 17:58

thierryg

Re : Re-numéroter des fichiers en masse

Bonjour,
J'ai essayé ton script, malheureusement il n'a pas fonctionné.
Il me sort sur l'écran:
mv ancien fichier foo_expr $Y+P.
Apparemment il y a un problème au niveau de la commande cut !
Je me penche dessus et merci pour ton idée.

Hors ligne

#5 Le 27/02/2006, à 18:00

wam

Re : Re-numéroter des fichiers en masse

je me disais bien que j'avais vu cet avatar quelque part. C'est celui de Keyes!
http://forum.ubuntu-fr.org/viewtopic.php?id=28390

ça serait sympa pour lui si tu en changeais stp.

Hors ligne

#6 Le 27/02/2006, à 18:05

sksbir

Re : Re-numéroter des fichiers en masse

thierryg a écrit :

Bonjour,
J'ai essayé ton script, malheureusement il n'a pas fonctionné.
Il me sort sur l'écran:
mv ancien fichier foo_expr $Y+P.
Apparemment il y a un problème au niveau de la commande cut !
Je me penche dessus et merci pour ton idée.

D'apres ce que tu obtiens, tu as oublié les antiquotes ( ` ), ou alors tu as mis des quotes ( ' ) à la place....

ha, et sinon, il y a une erreur : c'est `expr $Y + $P ` qu'il faut mettre. désolé.


(d'où l'importance de TOUJOURS commencer par mettre une commande inoffensive dans le script wink )

Dernière modification par sksbir (Le 27/02/2006, à 18:09)

Hors ligne

#7 Le 27/02/2006, à 21:32

thierryg

Re : Re-numéroter des fichiers en masse

Bonsoir,
Une fois les modificatios appliquées je me retrouve avec la sortie suivantes :
cut: Octet ou champ de liste invalide.
Pour en savoir davantage, faites: « cut --help ».
mv DSC_0001.JPG foo_+8
cut: Octet ou champ de liste invalide.
Pour en savoir davantage, faites: « cut --help ».
mv DSC_0002.JPG foo_+8
J'ai fait man cut mais ça ne m'a pas beaucoup appris.
Pourquoi as-tu choisi l'option -c -5- dans cut ?
Ta réponse me clarifiera peut-être les idées.
Merci

Hors ligne

#8 Le 27/02/2006, à 22:58

sksbir

Re : Re-numéroter des fichiers en masse

ouaip, bien vu . La bonne syntaxe est :

echo foo_124|cut -c5-
124

Evidemment, dans la soirée, j'ai moi-même une machine linux sous la main, ça va tout de suite mieux... tongue

Par contre, il était question de fichiers nommés foo_n, pas de fichiers nommés foo_n.DSC

Donc la bonne syntaxe est :

$ ls DSC*
DSC_001.JPG  DSC_004.JPG  DSC_006.JPG
$ for X in DSC*;do Y=`echo $X|cut -c5-7`; Y=`expr $Y + 8`; echo mv $X foo_$Y.DSC; done
mv DSC_001.JPG foo_9.DSC
mv DSC_004.JPG foo_12.DSC
mv DSC_006.JPG foo_14.DSC
$

Dernière modification par sksbir (Le 27/02/2006, à 22:59)

Hors ligne

#9 Le 27/02/2006, à 23:27

thierryg

Re : Re-numéroter des fichiers en masse

Merci, cela marche parfaitement.:)
Au cours de cette recherche j'ai aussi découvert deux petits scripts "mrename" téléchargeables avec synaptic et qui fonctionnent assez bien.
Cela peut peut-être t'intéresser.

Hors ligne

#10 Le 27/02/2006, à 23:50

sksbir

Re : Re-numéroter des fichiers en masse

oui, et il y en a d'autre du même genre.

Mais aucun n'atteint malheureusement la facilité d'un petit utilitaire graphique que j'ai eu l'occasion de tester sous windows qui s'appelait "better file rename".

Je veux dire, si c'est pour utiliser des scripts, je préfère encore les faire moi-même wink

Hors ligne