renommer des fichiers pour enlever les espaces dans les noms

renommer des fichiers pour enlever les espaces dans les noms - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 17-03-2005 à 08:12:51    

Bonjour,
Je recherche à renommer les noms de repertoire et de fichiers pour supprimer les espaces (en les remplçant par des _) ainsi que tous les caracteres bizarres (@ < etc.)
J'ai essayé krename sans succes. P'tet qu'un bout de code serait plus efficace ?
 
Merci,
 
Axel

Reply

Marsh Posté le 17-03-2005 à 08:12:51   

Reply

Marsh Posté le 17-03-2005 à 09:44:49    

pour remplacer le/les espace(s) d'un nom de fichier, tu peux utiliser sed (un peu grüik, mais bon)
 

echo "ton fichier     trop             long"| sed 's/  */_/g'
ton_fichier_trop_long


Message édité par xpoulet le 17-03-2005 à 09:45:24

---------------
Preuve est faite que visages dévots et pieuses actions nous servent à enrober de sucre le diable lui-même.
Reply

Marsh Posté le 17-03-2005 à 10:48:26    

Je dois avoir 400 fichiers répartis dans des répertoires/sous répertoires. Il s'agit d'un CD-rom brulé par un Mac et que j'aimerais copier sur une partition VFAT.

Reply

Marsh Posté le 17-03-2005 à 11:57:48    

J'avais fait un petit script a une epoque pour mes MP3 lors du passage de Windows a Linux
 
(Pour tester, mets en commentaire la ligne qui contient le mv et decommente la ligne avec le echo tout en bas du script)
 
#
# mou_mp3.sh
#
# This script modify the name of my mp3
#
# Copyright 2004 BiBiMax
#
 
cd "$1"
for i in * ; do
    newname=`echo $i | sed -e s/\ /\_/g |
    sed -e s/\é/\e/g |
    sed -e s/\è/\e/g |
    sed -e s/\ê/\e/g |
    sed -e s/\ë/\e/g |
    sed -e s/\©/\e/g |
    sed -e s/\à/\a/g |
    sed -e s/\â/\a/g |
    sed -e s/\ä/\a/g |
    sed -e s/\î/\i/g |
    sed -e s/\ï/\i/g |
    sed -e s/\ô/\o/g |
    sed -e s/\ö/\o/g |
    sed -e s/\û/\u/g |
    sed -e s/\ü/\u/g |
    sed -e s/\ÿ/\y/g |
    sed -e s/\(/\-/g |
    sed -e s/\)/\-/g |
    sed -e s/\Ã/\a/g |
    sed -e s/\¹//g |
    sed -e s/\¶//g |
    sed -e s/\Â//g |
    sed -e s/\Œ//g |
    sed -e s/\µ/\u/g |
    sed -e s/\+/et/g |
    sed -e s/a©/e/g |
    sed -e s/aš/e/g |
    sed -e s/a§/c/g |
    sed -e s/\&/et/g |
    sed -e s/\'/_/g |
    sed -e s/\°//g |
    sed -e s/\ /\_/g`
#    echo $newname
    mv "$i" "$newname"
done
 
et pour le lancer sur tous les sous-repertoires d'un repertoire
 
find . -type d -exec ./mou_mp3.sh {} \;
 
En esperant que ca t'aidera.

Reply

Marsh Posté le 17-03-2005 à 12:38:58    

il existe un ptit truc merveilleux qui s'appelle rename ! :o
 
 
sudo apt-get install rename
rename 's/ /_/g' /ton/rep/*

Reply

Marsh Posté le 17-03-2005 à 12:54:02    

et si il y a 2 espaces consécutifs ? :o
 
dans ce cas c'est  

rename 's/  */_/g' /ton/rep/*

 (avec 2 espaces avant */ )


Message édité par xpoulet le 17-03-2005 à 12:57:32

---------------
Preuve est faite que visages dévots et pieuses actions nous servent à enrober de sucre le diable lui-même.
Reply

Marsh Posté le 17-03-2005 à 14:59:36    

oki, en fait, je viens de me rendre compte que ce n'était pas des espaces... mais alors qu'est ce donc ?
comment faire pour mettre en paramettre de rename un autre caractere blanc (espace insécable ou un truc de ce gout ?) Comment trouver le code exact de ce caractere ?

Reply

Marsh Posté le 22-03-2005 à 09:34:03    

xpoulet a écrit :

et si il y a 2 espaces consécutifs ? :o
 
dans ce cas c'est  

rename 's/  */_/g' /ton/rep/*

 (avec 2 espaces avant */ )


roh ptain c'était pour montrer que ça existe, pas pour filer un cours de regexp... :o

Reply

Marsh Posté le 22-03-2005 à 09:35:12    

axel584 a écrit :

oki, en fait, je viens de me rendre compte que ce n'était pas des espaces... mais alors qu'est ce donc ?
comment faire pour mettre en paramettre de rename un autre caractere blanc (espace insécable ou un truc de ce gout ?) Comment trouver le code exact de ce caractere ?


s/\W/_/g
 
 
:o

Reply

Marsh Posté le 22-03-2005 à 14:44:30    

minusplus a écrit :

roh ptain c'était pour montrer que ça existe, pas pour filer un cours de regexp... :o


Ne fais pas ton Bordelais toi :o


---------------
Preuve est faite que visages dévots et pieuses actions nous servent à enrober de sucre le diable lui-même.
Reply

Marsh Posté le 22-03-2005 à 14:44:30   

Reply

Marsh Posté le 25-03-2005 à 17:53:38    

xpoulet a écrit :

Ne fais pas ton Bordelais toi :o


chus pu bordelais ! :o

Reply

Sujets relatifs:

Leave a Replay

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