Renommer en masse

Renommer en masse - Logiciels - Linux et OS Alternatifs

Marsh Posté le 26-10-2009 à 19:48:50    

Hello,
 
Je suis sous nux, et je voudrais renommer en masse des fichiers, en fait j'ai une bibliotheque musicale assez remplie et bien structurée, avec dans chaque dossier la pochette de l'album, sous un certain nom ( Folder, albumart, front, etc... ).
Je voudrais parcourir tous les dossiers, et s'il y a un fichier image, le renommer en "folder.jpg"
 
J'ai réussi à mettre dans un fichier la liste des chemins complets de toutes les images que je veux renommer, c'est possible de la donner à manger à rename pour qu'il les renomme tous en "folder.jpg" ( je suis indifférent au comportement s'il y a déja un fichier comme ca, il peut l'écraser ou ignorer ) ?
 
rename est ecrit en python, les expressions régulières sont casse gueule :/
 
Une proposition ? ( J'évite de créér un topic pour cette seule question pour l'instant )
merci


---------------
'En sup, lorsque j'ai choppé la grippe, j'ai rêvé que j'étais une fonction et que ma maladie était un problème de discontinuité. En 1/2.' -zolivv
Reply

Marsh Posté le 26-10-2009 à 19:48:50   

Reply

Marsh Posté le 26-10-2009 à 20:02:05    

un truc dans ce genre là :

 

rename -R folder.jpg *.jpg ?


Message édité par stupidduck le 26-10-2009 à 20:04:13
Reply

Marsh Posté le 26-10-2009 à 20:13:05    

bah justement, rename ne fonctionne pas comme ca ( sinon ca aurait été beaucoup mieux :sweat: ), faut lui donner des arguments en expression regulieres à la python, genre  
 
rename ’s/\.htm$/\.html/’ *.htm


---------------
'En sup, lorsque j'ai choppé la grippe, j'ai rêvé que j'étais une fonction et que ma maladie était un problème de discontinuité. En 1/2.' -zolivv
Reply

Marsh Posté le 26-10-2009 à 20:14:43    

arf oui, je viens de voir :/

Reply

Marsh Posté le 26-10-2009 à 20:19:18    

Comme j'ai déja la liste de tous les fichiers, il suffirait peut etre de les copier puis supprimer en fait  [:transparency]

 

On fait comment pour donner à mv et rm une liste comme argument :??: le < suffit ?


Message édité par Leroi14 le 26-10-2009 à 20:22:03

---------------
'En sup, lorsque j'ai choppé la grippe, j'ai rêvé que j'étais une fonction et que ma maladie était un problème de discontinuité. En 1/2.' -zolivv
Reply

Marsh Posté le 26-10-2009 à 20:52:54    

ben si t'as la liste de tous les fichiers, tu le fais avec un simple dirname et c'est tout vu :D

 

for i in `cat liste.txt`; do destdir=`dirname $i`; mv $i $destdir/folder.jpg; done


Message édité par e_esprit le 26-10-2009 à 20:53:03

---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 26-10-2009 à 21:20:27    

Bien pensé  [:implosion du tibia] :jap:
 
Il a juste un problème à bien interpréter le i du cat, puisque :
 

Code :
  1. for i in 'cat imagesdd.txt' ; do destdir='dirname $i' ; echo $i ;  done;
  2. cat imagesdd.txt


---------------
'En sup, lorsque j'ai choppé la grippe, j'ai rêvé que j'étais une fonction et que ma maladie était un problème de discontinuité. En 1/2.' -zolivv
Reply

Marsh Posté le 26-10-2009 à 21:27:04    

c'est des backquotes pas des quotes :o

 

(AltGr + 7 quoi)


Message édité par e_esprit le 26-10-2009 à 21:27:27

---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 26-10-2009 à 21:36:22    

Ah oui, my bad :jap:
 
Bon maintanant, il râle pour autre chose :/ Il aime pas les espaces dans les noms des fichiers...

Code :
  1. mv: ne peut évaluer `Royal': Aucun fichier ou dossier de ce type
  2. mv: ne peut évaluer `Victoria/Buddha': Aucun fichier ou dossier de ce type
  3. mv: ne peut évaluer `bar': Aucun fichier ou dossier de ce type


 
J'ai essayé de remplacer dans le fichier tous les "[espace]" par des "\[espace]" , idem
J'ai aussi mis des quotes partout, rien  

Code :
  1. ... mv "$i" "$destdir/folder.jpg" ...


 
Tain dire que j'y suis presque :sweat:


---------------
'En sup, lorsque j'ai choppé la grippe, j'ai rêvé que j'étais une fonction et que ma maladie était un problème de discontinuité. En 1/2.' -zolivv
Reply

Marsh Posté le 26-10-2009 à 21:41:33    

et en les doublant dans le fichier de liste ? '\\ '


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 26-10-2009 à 21:41:33   

Reply

Marsh Posté le 26-10-2009 à 21:46:49    

Non plus, ca me fait des trucs encore plus bizarres :

Code :
  1. mv: ne peut évaluer `del\\\\': Aucun fichier ou dossier de ce type
  2. mv: ne peut évaluer `Mar\\\\': Aucun fichier ou dossier de ce type


 
les espaces dans les noms de fichiers/reperetoires c'est le mal n fait :sweat:


---------------
'En sup, lorsque j'ai choppé la grippe, j'ai rêvé que j'étais une fonction et que ma maladie était un problème de discontinuité. En 1/2.' -zolivv
Reply

Marsh Posté le 26-10-2009 à 22:00:14    

Essaye avec cette syntaxe :

Code :
  1. while read line; do destdir=`dirname "${line}"`; mv "${line}" "$destdir/folder.jpg"; done < <(cat liste.txt)


Message édité par e_esprit le 26-10-2009 à 22:00:57

---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 26-10-2009 à 22:23:31    

Ca marche ! Merci :love:
 
Fallait y penser par contre, bien joué :jap:


---------------
'En sup, lorsque j'ai choppé la grippe, j'ai rêvé que j'étais une fonction et que ma maladie était un problème de discontinuité. En 1/2.' -zolivv
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed