Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 01/05/2010, à 10: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, à 13:11)


version : lucid
gnome 2.30.2

Hors ligne

#2 Le 01/05/2010, à 11: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, à 11: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, à 11: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, à 11: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, à 11: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 !


version : lucid
gnome 2.30.2

Hors ligne

#6 Le 01/05/2010, à 12: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, à 12: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?


version : lucid
gnome 2.30.2

Hors ligne

#8 Le 01/05/2010, à 13: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


version : lucid
gnome 2.30.2

Hors ligne

Haut de page ↑