OVH Cloud OVH Cloud

Renommer des fichiers avec incrémentation

9 réponses
Avatar
Lionel Allorge
Bonjour,

Je souhaite renommer tous les fichiers d'un répertoire avec un nom du type
"toto_xxx" ou xxx irait de 001 à 999.
Comment faire ?

D'avance merci.

Bonne continuation.

--
Lionel Allorge
Courriel : lionel.allorge@lunerouge.org
Lune Rouge : http://www.lunerouge.org
Boite à idées : http://www.boiteaidees.org
<---------->
"C'est toujours sur une démission collective que les tyrans fondent leur
puissance."
Maurice Druon

9 réponses

Avatar
Laurent
Je souhaite renommer tous les fichiers d'un répertoire avec un nom du type
"toto_xxx" ou xxx irait de 001 à 999.


La commande rename doit pouvoir faire ça ...

Il existe aussi un script perl : rename.pl
<http://www.scs.fsu.edu/~burkardt/pl_src/rename/rename.html>

Avatar
Alian
Lionel Allorge wrote:
Bonjour,

Je souhaite renommer tous les fichiers d'un répertoire avec un nom du type
"toto_xxx" ou xxx irait de 001 à 999.
Comment faire ?


perl -e 'foreach (glob("*")) { rename $_, "toto_".$i++; }'

Avatar
Lionel Allorge
Je souhaite renommer tous les fichiers d'un répertoire avec un nom du
type "toto_xxx" ou xxx irait de 001 à 999.


La commande rename doit pouvoir faire ça ...


Pas sur mon shell ...

Merci quand même.

--
Lionel Allorge
Courriel :
Lune Rouge : http://www.lunerouge.org
Boite à idées : http://www.boiteaidees.org
<---------->
"C'est toujours sur une démission collective que les tyrans fondent leur
puissance."
Maurice Druon


Avatar
Lionel Allorge
Je souhaite renommer tous les fichiers d'un répertoire avec un nom du
type "toto_xxx" ou xxx irait de 001 à 999.
Comment faire ?


perl -e 'foreach (glob("*")) { rename $_, "toto_".$i++; }'


Merci. Cela marche en effet, sauf que la numérotation démarre à "1" et non à
"001"...
Une idée ?

Bonne continuation.

--
Lionel Allorge
Courriel :
Lune Rouge : http://www.lunerouge.org
Boite à idées : http://www.boiteaidees.org
<---------->
"C'est toujours sur une démission collective que les tyrans fondent leur
puissance."
Maurice Druon


Avatar
Arol
"Lionel Allorge" a écrit dans le message de news:
Je souhaite renommer tous les fichiers d'un répertoire avec un nom du
type "toto_xxx" ou xxx irait de 001 à 999.
Comment faire ?


perl -e 'foreach (glob("*")) { rename $_, "toto_".$i++; }'


Merci. Cela marche en effet, sauf que la numérotation démarre à "1" et non
à

"001"...
Une idée ?


Lire la doc de perl puis ajouter 2 conditions dans le script précédent :
Si i < 10 alors concaténer "00" à i
Si i >= 10 et i < 100 alors concaténer "0" à i



Avatar
Laurent
La commande rename doit pouvoir faire ça ...


Pas sur mon shell ...


il faut avoir le package sysutils installé. rename est dedans.

Sinon, le lien pour le script perl que je donnais ne convenait pas ?


Avatar
Lionel Allorge
il faut avoir le package sysutils installé. rename est dedans.


OK.

Sinon, le lien pour le script perl que je donnais ne convenait pas ?


Oui, merci. Je vais le tester.

Bonne continuation.

--
Lionel Allorge
Courriel :
Lune Rouge : http://www.lunerouge.org
Boite à idées : http://www.boiteaidees.org
<---------->
"C'est toujours sur une démission collective que les tyrans fondent leur
puissance."
Maurice Druon

Avatar
alian
Je souhaite renommer tous les fichiers d'un répertoire avec un nom du
type "toto_xxx" ou xxx irait de 001 à 999.
Comment faire ?


perl -e 'foreach (glob("*")) { rename $_, "toto_".$i++; }'


Merci. Cela marche en effet, sauf que la numérotation démarre à "1" et non à
"001"...


perl -e 'foreach (glob("*")) { rename $_, "toto_".sprintf("%03d",
$i++); }'



Avatar
oli-cla
Bonjour,

Je souhaite renommer tous les fichiers d'un répertoire avec un nom du type
"toto_xxx" ou xxx irait de 001 à 999.
Comment faire ?

D'avance merci.

Bonne continuation.

--
Lionel Allorge
Courriel :
Lune Rouge : http://www.lunerouge.org
Boite à idées : http://www.boiteaidees.org
<---------->
"C'est toujours sur une démission collective que les tyrans fondent leur
puissance."
Maurice Druon


salut,

avec ce petit script peut être ....à adapter à tes rep

i=0
for fictmp in $REPVOB/VTS_01_a*
do
let i+=1
fichier="VTS_01_"$i.VOB
mv $fictmp $fichier
done


Bye,