# [Renomage] Renomer une liste de fichiers

## DaiKo

Salut  :Smile: 

Existe t il une solution élégante pour renomer une liste de fichier numéroté ?

ex : 

Liste1 :

 *Quote:*   

>  Livre1.chapitre1_titre_chapitre.page1.jpg
> 
> Livre1.chapitre1_titre_chapitre.page2.jpg
> 
> Livre1.chapitre2_titre_chapitre.page3.jpg
> ...

 

vers Liste2 :

 *Quote:*   

> Livre1.chap1.01.Fr.jpg
> 
> Livre1.chap1.02.Fr.jpg
> 
> Livre1.chap2.03.Fr.jpg
> ...

 

++

----------

## Pachacamac

Ca doit être possible mais pas évident. Le résultat à obtenir est très différent de l'origine.

J'y réfléchirai ce soir.

----------

## TTK

Salut

Ben avec un truc comme:

```

for i in *.jpg

do

 mv $i `echo $i | sed 's/Livre\(.\).chapitre\(.\)_titre_chapitre.page\(.\).jpg/Livre\1.chap\2.\3.Fr.jpg/'`

done

```

Ca marche a peu pres, mais si tu veux vraiment compléter tes chiffres avec des zéros (01.jpg) tu n'echapperas pas au script perl. Pas compliqué d'ailleurs ...[/code]

----------

## linux_girl

 *TTK wrote:*   

> Salut
> 
> Ben avec un truc comme:
> 
> ```
> ...

 

yep ca ser a quoi de \(.\) ? dans la regexp je croyat qu'un \.* fesait l'afiare ?

----------

## LostControl

Y'a sans doute moyen de faire ça propre avec rename !

```
$ man rename
```

A+

----------

## Panuru

Un logiciel à la Krename (dans Portage) permet de faire ce genre d'opération très facilement.

----------

## Darkael

Daiko, si je comprends bien à la place de titre_chapitre il y a le nom du chapitre (ce n'est pas litérallement titre_chapitre) et à la place de Livre1 il y a le titre du livre?

Dans ce cas, ma version:

```

#!/bin/sh

for f in *.jpg

do

 mv $f `echo $f | sed "s/\(.*\)\.chapitre\([0-9]*\)[^\.]*\.page\([0-9]*\).jpg/\1.chap\2.\3.Fr.jpg/" | sed "s/\.\([0-9]\)\.Fr/\.0\1.Fr/"`

done

```

Ca donne ça:

```

gael@ubik ~/rename $ ls -1

Le_Monde.chapitre1_Edito.page1.jpg

Le_Monde.chapitre2_Sport.page13.jpg

Le_Monde.chapitre2_Sport.page1.jpg

Playboy.chapitre1_Jenna.page12.jpg

Playboy.chapitre1_Jenna.page1.jpg

Playboy.chapitre2_Deborah.page2.jpg

gael@ubik ~/rename $ ./rename.sh

gael@ubik ~/rename $ ls -1

Le_Monde.chap1.01.Fr.jpg

Le_Monde.chap2.01.Fr.jpg

Le_Monde.chap2.13.Fr.jpg

Playboy.chap1.01.Fr.jpg

Playboy.chap1.12.Fr.jpg

Playboy.chap2.02.Fr.jpg

```

Bon, loi de Murphy oblige, c'est surement pas le résultat que tu voulais et/ou les fichiers ne sont pas comme ça à la base. Donc, la morale de l'histoire, c'est que tu devrais apprendre la syntaxe de sed, pour pouvoir faire toi-même selon les cas....

@TTK: ta version ne prend pas en compte que titre_chapitre change selon les chapitres, et pour rajouter les 0 il suffit de faire une deuxième passe de sed (oui c'est moche, mais bon  :Very Happy:  )

@linux_girl(?): les parenthèses, ça sert à retenir un morceau de la chaine, pour la réutiliser dans la substitution, avec \1, \2 ... 

@LostControl: je connais pas les subtilités de rename, mais je pense qu'à un certain niveau de complexité ça sera tout aussi compliqué qu'avec sed...

Voila.

(je devrais être en cours, à la place je glande chez moi et j'écris des scripts laids pour les autres ... C'est beau la vie d'étudiant  :Very Happy: )

----------

## Enlight

 *Quote:*   

> 
> 
> ```
> 
> Playboy.chapitre1_Jenna.page12.jpg 
> ...

 

lol   :Very Happy: 

----------

## Pachacamac

 *KarnEvil wrote:*   

> 
> 
> Voila.
> 
> (je devrais être en cours, à la place je glande chez moi et j'écris des scripts laids pour les autres ... C'est beau la vie d'étudiant )

 

Ce matin je me suis dépéché de partir pour aller en cours.

Finallement j'ai raté les 2heures de 7 à 10 et je me suis retrouvé en anglais !  :Confused:  En plus cet aprèm je n'ai pas cours, ce n'est pas mon groupe.

Bref la semaine commence plutôt mal. Normal, elle débute par un lundi...

@linux_girl :

 *linux_girl wrote:*   

> 
> 
> yep ca ser a quoi de \(.\) ? dans la regexp je croyat qu'un \.* fesait l'afiare ?
> 
> 

 

\(.\) permet d'identifier une sous expression que tu repositionne avec \1 \2 etc. 

Tu peux aussi faire quelque chose du style :

```

ls *.jpg | sed "s/Livre\(.\).chapitre\(.\)_titre_chapitre.page\(.\).jpg/mv '&' 'Livre\1.chap\2.\3.Fr.jpg'/" | sh

```

----------

## DaiKo

Merci beaucoup pour cette profusion de reponses, 

Dans un premier temps, TTK merci pour ta solution, mais j'aurai du le preciser dans mon post je prefererai eviter d'utiliser un script, car cela m'obligerait a en ecrire un a chaque fois que je serait dans un cas similaire.

Je vais plutot regarder dans la direction de rename et krename, et puis si sa ne correspond pas j'aurai plus qu'a developper mon propre soft...

Si quelqu'un connait un soft qui peut deja faire ce genre d'opération simplement, je suis preneur  :Smile: 

----------

## Pachacamac

J'ai pas tout compris là. Pourquoi tu ne veux pas un script ? D'après toi que vas faire un soft ? Te demander ce que tu veux faire. Donc tu peux toi même utiliser des variables pour faire de même si tu préfères.

M'enfin je me vais me répèter, j'ai pas compris ton problème de script.

----------

## sireyessire

 *Pachacamac wrote:*   

> 
> 
> Ce matin je me suis dépéché de partir pour aller en cours.
> 
> Finallement j'ai raté les 2heures de 7 à 10 et je me suis retrouvé en anglais ! 
> ...

 

LOL

tu es vraiment crevé toi!!!!!

```
:s/7/8/g ou :s/2/3/g
```

  :Wink: 

----------

## zdra

j'ai examen demain :'( mais qu'est ce que je fais encore devant le pc alors ????   :Evil or Very Mad: 

----------

## Enlight

Ben, M... alors!

----------

## kernelsensei

 *zdra wrote:*   

> j'ai examen demain :'( mais qu'est ce que je fais encore devant le pc alors ????  

 

Ah ben moi c'est samedi matin ...  :Rolling Eyes: 

----------

## rg421

 *Quote:*   

> Bon, loi de Murphy oblige, c'est surement pas le résultat que tu voulais et/ou les fichiers ne sont pas comme ça à la base. Donc, la morale de l'histoire, c'est que tu devrais apprendre la syntaxe de sed, pour pouvoir faire toi-même selon les cas....
> 
> 

 

Juste histoire de mettre mes 0,02cts... et pour la beauté du geste (oui, 3 fork pour renommer un fichier, c'est trop pour moi).

Non, je n'utilise pas sed:

```
g54:~/temp rg$ ll

total 0

drwxr-xr-x    7 rg       rg            238 Jan 10 14:44 .

drwxr-xr-x   33 rg       rg           1122 Jan 10 14:10 ..

-rw-r--r--    1 rg       rg              0 Jan 10 14:44 AutreLivre2.chapitre15_du_comment_je_finis.page1.jpg

-rw-r--r--    1 rg       rg              0 Jan 10 14:13 AutreLivre2.chapitre1_preambule.page1.jpg

-rw-r--r--    1 rg       rg              0 Jan 10 14:12 Livre1.chapitre1_preambule.page1.jpg

-rw-r--r--    1 rg       rg              0 Jan 10 14:12 Livre1.chapitre2_mon_titre_de_chapitre.page2.jpg

-rw-r--r--    1 rg       rg              0 Jan 10 14:13 Livre1.chapitre5_mon_titre_de_chapitre.page12.jpg

g54:~/temp rg$ for i in *; do oldIFS=$IFS; IFS='._'; set x $i; IFS=$oldIFS; mv "$i" $2.${3/#chapitre/chap}."${i##*page}"; done

g54:~/temp rg$ ll

total 0

drwxr-xr-x    7 rg       rg            238 Jan 10 15:21 .

drwxr-xr-x   33 rg       rg           1122 Jan 10 14:10 ..

-rw-r--r--    1 rg       rg              0 Jan 10 14:13 AutreLivre2.chap1.1.jpg

-rw-r--r--    1 rg       rg              0 Jan 10 14:44 AutreLivre2.chap15.1.jpg

-rw-r--r--    1 rg       rg              0 Jan 10 14:12 Livre1.chap1.1.jpg

-rw-r--r--    1 rg       rg              0 Jan 10 14:12 Livre1.chap2.2.jpg

-rw-r--r--    1 rg       rg              0 Jan 10 14:13 Livre1.chap5.12.jpg

g54:~/temp rg$ 

```

Limpide, non ? Bon, évidemment, pas de numéro de page sur 2 chiffres de façon systématique. mais économie de ressources garantie.

-- 

Renaud

----------

## yoyo

Y a vraiment de la feignasse qui veut pas lire les man ici !!!

Même pas faire une petite recherche sur le forum !!!

https://forums.gentoo.org/viewtopic.php?t=255387

https://forums.gentoo.org/viewtopic.php?t=195862

----------

## Pachacamac

@rg421 : Pas mal, je n'aurait pas pensé à le faire comme ça.

@sireyessire : Effectivement il s'agit bien des heures de 8 à 10.

@Tout le monde : Tous aux abris yoyo arrive !!!

On ne peux même pas s'amuser à scripter quelques commandes qu'il va nous sortir RTFM lol

En tout cas je n'ai jamais utilisé rename mais je te promet d'y jetter un coup d'oeil, il a l'air sympatique.

----------

## yoyo

 *Pachacamac wrote:*   

> On ne peux même pas s'amuser à scripter quelques commandes qu'il va nous sortir RTFM 
> 
> En tout cas je n'ai jamais utilisé rename mais je te promet d'y jetter un coup d'oeil, il a l'air sympatique.

 Il est surtout fait pour renommer les fichiers/répertoires ...  :Laughing: 

Mais pourquoi faire simple ...

D'ailleurs si quelqu'un à un script pour afficher le contenu d'un répertoire par ordre alphabétique de noms de fichiers, je suis preneur.   :Twisted Evil: 

----------

## sireyessire

 *yoyo wrote:*   

> [
> 
> D'ailleurs si quelqu'un à un script pour afficher le contenu d'un répertoire par ordre alphabétique de noms de fichiers, je suis preneur.  

 

un 

```
ls -f | sort -d
```

 ??

----------

## Pachacamac

MDR !

ls est déjà par odre alpha.  :Wink: 

Je pense que sireyessire n'a pas fait attention. Hé garçon il rigole !

----------

## sireyessire

 *Pachacamac wrote:*   

> MDR !
> 
> ls est déjà par odre alpha. 
> 
> Je pense que sireyessire n'a pas fait attention. Hé garçon il rigole !

 

non pas forcément dans le bon ordre. ça dépend du shell que tu utilises: il te sort pas le même ordre entre bash zsh....

----------

## yoyo

 *Pachacamac wrote:*   

> MDR !
> 
> ls est déjà par odre alpha. 
> 
> Je pense que sireyessire n'a pas fait attention. Hé garçon il rigole !

 C'était en effet une boutade ...

 *sireyessire wrote:*   

> non pas forcément dans le bon ordre. ça dépend du shell que tu utilises: il te sort pas le même ordre entre bash zsh....

 Tu as des exemples entre bash et zsh ??

Parce que j'ai testé dans plusieurs répertoire et le "ls -l" m'a toujours sorti la même chose dans les 2 cas (liens, majuscules etc.) ...

Et pis de toute façon, c'est pas un script; moi je veux au moins une boucle (et pas une pov' redirection à 2 balles).   :Razz: 

PS : par contre, je ne suis pas sûr que l'ordre dépend de l'interpréteur de commande.

man ls :

 *Quote:*   

> Trier les répertoires en fonction de la taille de fichier et non pas en ordre alphabétique.

 

L'ordre alphabétique semble donc être l'ordre par défaut.

----------

## sireyessire

 *yoyo wrote:*   

> 
> 
> L'ordre alphabétique semble donc être l'ordre par défaut.

 

pour ls oui c'est vrai

mais pas pour un 

```
for i in */*.jpg; do echo $i; done
```

. 

il me semble bien que zsh utilise pas par défaut le même ordre de triage que bash

----------

## yoyo

 *sireyessire wrote:*   

>  *yoyo wrote:*   
> 
> L'ordre alphabétique semble donc être l'ordre par défaut. 
> 
> pour ls oui c'est vrai

 Alors dans ce cas, ta commande "ls -f | sort -d" est excellente !!  :Laughing: 

----------

## sireyessire

 *yoyo wrote:*   

>  *sireyessire wrote:*    *yoyo wrote:*   
> 
> L'ordre alphabétique semble donc être l'ordre par défaut. 
> 
> pour ls oui c'est vrai Alors dans ce cas, ta commande "ls -f | sort -d" est excellente !! 

 

no more comment

mais sinon si tu veux un ordre à la con tu dois pouvoir le dire à sort qui te le fera

----------

## linux_girl

bordel y a que des etudiants moi comprit ici sauf le gas qui c'est pas renamer les files  :Smile:   :Smile: 

 :Smile: 

y trop d'etudiants en info les gas stop !

----------

## DaiKo

bah oui et ce n'est pas une bonne idée  :Wink:  parceque je l'etait il n'y a encore pas longtemps  :Wink:  et voyez ce que cela donne  :Very Happy: Last edited by DaiKo on Thu Jan 13, 2005 12:54 pm; edited 1 time in total

----------

## kwenspc

moi je vais rester etudiant pour toujours, comme Ryô Saeba qu ia toujours 20 ans...

bon ok, dslé pour ce délire perso je ---> []

----------

## Enlight

 *Quote:*   

> Ryô Saeba 

  ça me dit quelque chose ce nom c'est dans quoi déjà?

----------

## kernelsensei

city hunter ?

En france on le connais sous le nom de nicky larson .....

----------

## kwenspc

 :Mr. Green: 

Vi c'est City Hunter...d'ailleurs ils sont plus vendus   :Confused:  m'en manque la moitié...et vu les prix en ocaz je sens que je vais jamaos pouvoir les avoir tous (y en a 36 par là...). 

bon enfin bref, si kk1 veux me vendre les siens --> private message.

bon j'arrete de polluer le post là.

----------

## DaiKo

Hein? sont plus vendu ? depuis quand ? la derniere fois que j'ai été chez mon fournisseur préféré il les avait tous (Japanim' a Nantes)... et alapage les vend encore... (environ 5/tome)

[EDIT]

 j'ai parler trop vite : la plupart des volumes sont en rupture de stock sur alape, par contre je suis persuader d'en avoir vu dans plusieur boutique en neuf et en occasion, Donc tous n'est pas perdu  :Wink: 

[/EDIT]Last edited by DaiKo on Thu Jan 13, 2005 10:43 pm; edited 1 time in total

----------

## kwenspc

@Daiko : sont pu édité si tu préfères. pi ton vendeur là ils devaient avoir des stocks. mais c vrai qu'on les trouve encore dans des boutiques spécialisée, mais pas dans les librairies grand public (fnac...etc...). Malheureusment c de moins en moins vrai.

[edit] alapage? bon j'y fonce! [/edit]

----------

## DaiKo

Désoler   :Embarassed:   promis la prochiane fois je tournerai 7x ma langue dans ma bouche et je taperai 7x chaque caractere sur mon clavier... sa m'evitera de dir des bétise...

en tout cas c'est dommage c'est une bonne série, moi qui attendais pour les faire...

Sinon on peut toujours se consoler avec les Angel Hearts....

----------

## kwenspc

ah non les angels heart sont pas top...on croirait que Tsukasa Hojo casse son jouet  :'(

kaori ké plus là (et pour cause!), ryo qui a vieilli (sacrilège!  lol)...enfin bref. on est loin de la premère série.

non je vais plutôt lire family compo   :Wink: 

----------

## DaiKo

dommage, le premier m'avait sembler pas mal... c'est peut etre du a la traduction (je l'avait lu en anglais)

----------

