Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1610 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  renommer des fichiers pour enlever les espaces dans les noms

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

renommer des fichiers pour enlever les espaces dans les noms

n°650863
axel584
Posté le 17-03-2005 à 08:12:51  profilanswer
 

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

mood
Publicité
Posté le 17-03-2005 à 08:12:51  profilanswer
 

n°650881
xpoulet
apt-get install poolaÿ
Posté le 17-03-2005 à 09:44:49  profilanswer
 

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.
n°650896
axel584
Posté le 17-03-2005 à 10:48:26  profilanswer
 

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.

n°650908
BiBi Max
Posté le 17-03-2005 à 11:57:48  profilanswer
 

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.

n°650914
minusplus
Posté le 17-03-2005 à 12:38:58  profilanswer
 

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

n°650916
xpoulet
apt-get install poolaÿ
Posté le 17-03-2005 à 12:54:02  profilanswer
 

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.
n°650978
axel584
Posté le 17-03-2005 à 14:59:36  profilanswer
 

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 ?

n°653254
minusplus
Posté le 22-03-2005 à 09:34:03  profilanswer
 

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

n°653256
minusplus
Posté le 22-03-2005 à 09:35:12  profilanswer
 

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

n°653421
xpoulet
apt-get install poolaÿ
Posté le 22-03-2005 à 14:44:30  profilanswer
 

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.
mood
Publicité
Posté le 22-03-2005 à 14:44:30  profilanswer
 

n°654893
minusplus
Posté le 25-03-2005 à 17:53:38  profilanswer
 

xpoulet a écrit :

Ne fais pas ton Bordelais toi :o


chus pu bordelais ! :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  renommer des fichiers pour enlever les espaces dans les noms

 

Sujets relatifs
GRIP et noms de fichiersRajouter date+heure dans les fichiers history (Sun Solaris)
renommer des fichiersou sont stockés les fichiers log d'iptables ?
Mandrake / Quanta : Enlever le "coller" avec le bouton du milieu.Commande pour changer les droits récursivements (rep+fichiers)
concaténation de fichiers ps avec ghostscriptServeur de fichiers pour réseau MAC et PC
Plus de sujets relatifs à : renommer des fichiers pour enlever les espaces dans les noms


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR