Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/05/2010, à 11:34

cricri38

remplacer espaces dans tous les dossier [résolu]

bonjour ,
je souhaiterais remplacer les espaces des noms de tous mes dossier (mal gérés par différentes applications ) par des  _    , j'imagine que c'est facilement possible par ligne de commande , mais je sais pas comment faire , j'ai bien vu des trucs dans les forums , mais toujours liés avec d'autres commandes , ou pas clair .

vu que j'ai du mal avec les codes je préfère pas faire qque chose si je suis pas sur du code , surtout si ça doit toucher tous les dossiers .

alors si qqu'un pourrait m'aider j'en serait très heureuse.
merci

Dernière modification par cricri38 (Le 01/05/2010, à 14:11)


18.04 LTS

Hors ligne

#2 Le 01/05/2010, à 12:29

skingrapher

Re : remplacer espaces dans tous les dossier [résolu]

Bonjour,

Il existe un utilitaire en ligne de commande qui fait exactement ce boulot; il s'appelle detox. Il remplace automatiquement les espaces par des underscores.
Exemple:

detox mon\ fichier

Le fichier sera renommé en mon_fichier.

Ça fonctionne aussi pour les répertoires.


Je suis un obsédé textuel. J'aime trop le LaTeX.

Hors ligne

#3 Le 01/05/2010, à 12:38

hardball

Re : remplacer espaces dans tous les dossier [résolu]

je te propose de le faire en plusieurs étapes

1/ recherche des fichiers et dossiers avec un espace dans ta home :

find $HOME -name "* *" > /tmp/liste-des-fichiers-et-dossiers-avec-un-espace

tu peux ainsi vérifier ce que le find a trouvé (en éditant le fichier /tmp/liste-des-fichiers-et-dossiers-avec-un-espace)

2/ création du script de renommage

perl -ne 'chomp;$old=$_;s/\s/_/g;print "mv -f \"$old\" $_ \n"' /tmp/liste-des-fichiers-et-dossiers-avec-un-espace >/tmp/renommage.sh
chmod 0777 /tmp/renommage.sh

dans la commande ci-dessus
s/\s/_/g signifie de remplacer espace par underscore
si tu voulais mettre plutot des tirets : s/\s/-/g

3/ apres avoir vérifié le fichier /tmp/renommage.sh, tu peux le lancer depuis un terminal




PS: il existe aussi la commande rename

Dernière modification par hardball (Le 01/05/2010, à 12:43)


-- Toshiba satelliteA100-335 + Ubuntu Jaunty --
Pour les noobs : Bienvenue ! ici la perséverance vous récompense.
Pour les anciens : Merci à vous de partager votre savoir.
Et vive le perl !

Hors ligne

#4 Le 01/05/2010, à 12:39

hardball

Re : remplacer espaces dans tous les dossier [résolu]

skingrapher a écrit :

Il existe un utilitaire en ligne de commande qui fait exactement ce boulot; il s'appelle detox.

merci pour l'info skingrapher


-- Toshiba satelliteA100-335 + Ubuntu Jaunty --
Pour les noobs : Bienvenue ! ici la perséverance vous récompense.
Pour les anciens : Merci à vous de partager votre savoir.
Et vive le perl !

Hors ligne

#5 Le 01/05/2010, à 12:54

cricri38

Re : remplacer espaces dans tous les dossier [résolu]

merci à tous les deux !
super ; detox à l'aire plus simple , mais je vais tester aussi la méthode script histoire d'apprendre à faire .
merci à tous les deux !


18.04 LTS

Hors ligne

#6 Le 01/05/2010, à 13:24

credenhill

Re : remplacer espaces dans tous les dossier [résolu]

hello

 find . -depth -name "* *"  -exec rename 's/ /_/g' "{}" \;

Hors ligne

#7 Le 01/05/2010, à 13:39

cricri38

Re : remplacer espaces dans tous les dossier [résolu]

hardball a écrit :

je te propose de le faire en plusieurs étapes

1/ recherche des fichiers et dossiers avec un espace dans ta home :

find $HOME -name "* *" > /tmp/liste-des-fichiers-et-dossiers-avec-un-espace

tu peux ainsi vérifier ce que le find a trouvé (en éditant le fichier /tmp/liste-des-fichiers-et-dossiers-avec-un-espace)

2/ création du script de renommage

perl -ne 'chomp;$old=$_;s/\s/_/g;print "mv -f \"$old\" $_ \n"' /tmp/liste-des-fichiers-et-dossiers-avec-un-espace >/tmp/renommage.sh
chmod 0777 /tmp/renommage.sh

dans la commande ci-dessus

le fichier tmp est bien crée , le script aussi , mais quand je le lance il semble agir , mais au final rien ! y à t'il une subtilité qui m'aurait échappée?


18.04 LTS

Hors ligne

#8 Le 01/05/2010, à 14:10

cricri38

Re : remplacer espaces dans tous les dossier [résolu]

credenhill a écrit :

hello

 find . -depth -name "* *"  -exec rename 's/ /_/g' "{}" \;

Merci credenhill !! super !! ça , ça marche nickel !! .... il me faudra vraiment apprendre tous ces termes et la manière de s'en servir , parce que c'est vraiment très pratique !

merci encore à tous pour votre aide


18.04 LTS

Hors ligne