Remplacement des espaces

Résolu/Fermé
lily - 23 juin 2009 à 14:41
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 - 23 juin 2009 à 22:31
Bonjour,
je recherche une commende pour remplacer tous les espaces des noms de répertoire par un caractères _
j'arrive a afficher la liste des dossier et sous-dossier avec

find -name "*\ *" -type d -print

il faut peut etre utiliser un mv pour renommer les dossier mais je pas trop comment m'y prendre pour faire tout les dossier à la fois

lily
A voir également:

4 réponses

mamiemando Messages postés 33330 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 octobre 2024 7 800
23 juin 2009 à 20:17
Déjà traité ici :
http://www.commentcamarche.net/forum/affich 3382569 remplacer espacements dans noms de fichier

Je vois bien un truc dans ce goût :
find -name "*\ *" -type d -print | rename 's/\s+/_/g'

Bonne chance
1
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 472
23 juin 2009 à 20:11
bonjour,

$ find -depth . | (while read FULLPATH; do BASENAME=`basename "${FULLPATH}"`; DIRNAME=`dirname "${FULLPATH}"`; mv "${DIRNAME}/${BASENAME}" "${DIRNAME}/${BASENAME// /_}"; done)


bien sûr, faire un essai avant dans un répertoire test .....
0
merci pour vos réponses
la solution de mamiemando a fonctionné *aléluïa*
encore merci
lily
0
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 472
23 juin 2009 à 22:31
j'ai commis une petite erreur : il fallait lire :
find . -depth blablabla



et non pas
find -depth . blablabla



j'ai testé et ça marche aussi !

:-)
0