Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Aller à la page:  1 2 Page suivante
Page: 1 sur 2
suppression des espaces
Envoyé par: jcv

Un bit-intellectuel peut-il me donner la formule magique pour supprimer les espaces des noms de fichier contenus dans plusieurs répertoires (dans un seul repertoire, je sais faire).
Merci à tous

Poste le Thursday 11 August 2005 03:59:22
Répondre     Citer    
Re: suppression des espaces
Envoyé par: nicola

#!/bin/bash

echo "Entering `pwd`"
read # Tu peux supprimer ça, c’est pour éviter les grosses bêtises

for i in *
  do
  if [ -d $i ]
  then
    cd $i
    supprespaces.sh # Je suppose que ton script s’appelle comme ça
    cd ..
  fi

  toncode de suppression
done

Ce script est bourrin, il s’appelle lui-même, les puristes utiliseront à la place find avec l’option -exec.

--
On ne prête qu’aux riches, et on a bien raison, parce que les autres remboursent difficilement.
-+- Tristan Bernard (1866-1947) -+-

Poste le Thursday 11 August 2005 09:03:54
Répondre     Citer    
Re: suppression des espaces
Envoyé par: elfato

find / -type f -exec mv {} `echo {} | sed -e "s/ //g"` \;

Poste le Thursday 11 August 2005 09:40:25
Répondre     Citer    
Re: suppression des espaces
Envoyé par: jcv

Merci beaucoup, mon pc va décoder, normaliser puis réencoder de la zizique pendant mon sommeil, ou la lecture de Stendhal. Dieu ne m'est pas de grand secours, vous oui.

Poste le Thursday 11 August 2005 23:02:47
Répondre     Citer    
Re: suppression des espaces
Envoyé par: jcv

find / -type f -exec mv {} `echo {} | sed -e "s/ //g"` \;

Cette formule magique ne fonctionne que si le nom des repertoires ne contient pas lui même d'espace.
Y a t'il un moyen de supprimer en série ces espaces dans les noms de répertoire?
Il n'y a malheureusement rien à gagner pour le trouveur.
Merci.

Poste le Monday 15 August 2005 23:42:14
Répondre     Citer    
Re: suppression des espaces
Envoyé par: nicola

Mon script devrait marcher, non ?

--
On ne prête qu’aux riches, et on a bien raison, parce que les autres remboursent difficilement.
-+- Tristan Bernard (1866-1947) -+-

Poste le Monday 15 August 2005 23:45:22
Répondre     Citer    
Re: suppression des espaces

find / -exec mv {} `echo {} | sed -e "s/ //g"` \;


--
Brugmans Frédéric

[www.brugmans.net]
[triathlon.sport-challenge.be]

Poste le Monday 15 August 2005 23:48:41
Répondre     Citer    
Re: suppression des espaces
Envoyé par: elfato

Citation
jcv
find / -type f -exec mv {} `echo {} | sed -e "s/
//g"` \;

Cette formule magique ne fonctionne que si le nom
des repertoires ne contient pas lui même
d'espace.
Y a t'il un moyen de supprimer en série ces
espaces dans les noms de répertoire?
Il n'y a malheureusement rien à gagner pour le
trouveur.
Merci.
non le type F est justement le forcage pour ne traiter que les fichiers

Poste le Tuesday 16 August 2005 09:09:36
Répondre     Citer    
Re: suppression des espaces
Envoyé par: jcv

En faisant:

for i in *
do
if [ -d $i ]
then
cd $i
for i in *; do mv "$i" `echo $i | tr " " "_"; done
cd ..
fi

ca marche sur plusieurs répertoires mais ca ne rentre pas dedans pour faire la même chose sur les fichiers qu'ils contiennent.
Je voulais supprimer les espaces des noms de mes fichiers mp3 en série dans plusieurs répertoires pour utiliser lame et les normaliser.
Merci encore.

Poste le Tuesday 16 August 2005 23:00:15
Répondre     Citer    
Re: suppression des espaces
Envoyé par: nicola

Et mon script, alors ? Si tu inverses l’ordre du test et du code de suppression/renommage, il s’occupera aussi des répertoires.

--
On ne prête qu’aux riches, et on a bien raison, parce que les autres remboursent difficilement.
-+- Tristan Bernard (1866-1947) -+-

Poste le Tuesday 16 August 2005 23:21:16
Répondre     Citer    
Re: suppression des espaces
Envoyé par: jcv

Et bien cher ami, ton script est très bien.En faisant:
for i in *; do mv "$i" `echo $i | tr " " "_"; done
for i in *
do
if [ -d $i ]
then
cd $i
for i in *; do mv "$i" `echo $i | tr " " "_"; done
cd ..
fi
Ma tâche a été grandement simplifiée.
Si quelqu'un a quelque chose de plus académique, ça pourrait être inclus dans le Léa_book.
Merci encore à tous.

Poste le Wednesday 17 August 2005 22:52:29
Répondre     Citer    
Re: suppression des espaces
Envoyé par: Eric S

bonjour, je suis intressé par ce script, mais je m'y connais très peu en la matière,

mon but : scanner tout mon répertoire /home, repérer tous les dossiers ET fichiers dont les noms contiennent des espaces, puis supprimer ces espaces, voire les remplacer par un "_"

j'ai essayé de copier le script donné dans ce forum, dans un fichier texte, de l'enregistrer comme "supprespace.sh" sur mon bureau, de le rendre exetucable en tapant chmod +x supprespace.sh, puis de le lancer, mais aucun résultat. je dois certainement devoir adapter la synthaxe à mon cas personnel, mais je ne sais pas comment faire

merci d'avance, Eric

Poste le Tuesday 6 September 2005 15:02:53
Répondre     Citer    
Re: suppression des espaces
Envoyé par: nicola

À mon avis ça foire au niveau du for i in *. Quel est le répertoire où ton script est lancé ? Fais-le commencer par un cd.

--
On ne prête qu’aux riches, et on a bien raison, parce que les autres remboursent difficilement.
-+- Tristan Bernard (1866-1947) -+-

Poste le Tuesday 6 September 2005 15:05:50
Répondre     Citer    
Re: suppression des espaces
Envoyé par: Eric S

merci, ça ne marche pas encore, voici la situation :

d'abord, copie de mon script :

#!/bin/sh
cd /home/eric
for i in *; do mv "$i" `echo $i | tr " " "_"; done
for i in *
do
if [ -d $i ]
then
cd $i
for i in *; do mv "$i" `echo $i | tr " " "_"; done
cd ..
fi

Ensuite, copie du retour console après l'avoir exécuté :

root@ubuntueric:/home/eric/Desktop # chmod +x supprespace.sh
root@ubuntueric:/home/eric/Desktop # ./supprespace.sh
./supprespace.sh: command substitution: line 3: syntax error near unexpected tok en `done'
./supprespace.sh: command substitution: line 3: `echo $i | tr " " "_"; done'
mv: Lors du déplacement de fichiers, le dernier argument doit être un répertoire .
Pour en savoir davantage, faites: « mv --help ».
./supprespace.sh: command substitution: line 3: syntax error near unexpected tok en `done'
./supprespace.sh: command substitution: line 3: `echo $i | tr " " "_"; done'
mv: ne peut déplacer `CONFIG_INSTALLATION' vers un sous-répertoire de lui-même ` CONFIG_INSTALLATION/CONFIG_INSTALLATION'
mv: ne peut évaluer `echo': Aucun fichier ou répertoire de ce type
./supprespace.sh: command substitution: line 3: syntax error near unexpected tok en `done'
./supprespace.sh: command substitution: line 3: `echo $i | tr " " "_"; done'
mv: ne peut déplacer `Desktop' vers un sous-répertoire de lui-même `Desktop/Desk top'
mv: ne peut évaluer `echo': Aucun fichier ou répertoire de ce type
./supprespace.sh: command substitution: line 3: syntax error near unexpected tok en `done'
./supprespace.sh: command substitution: line 3: `echo $i | tr " " "_"; done'
mv: ne peut déplacer `PAQUETS_TELECHARGES' vers un sous-répertoire de lui-même ` PAQUETS_TELECHARGES/PAQUETS_TELECHARGES'
mv: ne peut évaluer `echo': Aucun fichier ou répertoire de ce type
./supprespace.sh: command substitution: line 3: syntax error near unexpected tok en `done'
./supprespace.sh: command substitution: line 3: `echo $i | tr " " "_"; done'
mv: Lors du déplacement de fichiers, le dernier argument doit être un répertoire .
Pour en savoir davantage, faites: « mv --help ».
./supprespace.sh: line 11: syntax error near unexpected token `fi'
./supprespace.sh: line 11: `fi'
root@ubuntueric:/home/eric/Desktop #


c'est grave docteur ??

Poste le Tuesday 6 September 2005 15:18:49
Répondre     Citer    
Re: suppression des espaces
Envoyé par: nicola

for i in *; do mv "$i" `echo $i | tr " " "_"; done

Il te manque un ` entre le dernier " et le ;.

--
On ne prête qu’aux riches, et on a bien raison, parce que les autres remboursent difficilement.
-+- Tristan Bernard (1866-1947) -+-

Poste le Tuesday 6 September 2005 15:26:16
Répondre     Citer    
Re: suppression des espaces
Envoyé par: Erio S

alors, script modifié :


#!/bin/sh
cd /home/eric
for i in *; do mv "$i" `echo $i | tr " " "_" ' ; done
for i in *
do
if [ -d $i ]
then
cd $i
for i in *; do mv "$i" `echo $i | tr " " "_" ' ; done
cd ..
fi


et retour console :

root@ubuntueric:/home/eric/Desktop # ./supprespace.sh
./supprespace.sh: line 9: unexpected EOF while looking for matching `''
./supprespace.sh: line 12: syntax error: unexpected end of file


problème de synthaxe ??

Poste le Tuesday 6 September 2005 15:37:18
Répondre     Citer    
Re: suppression des espaces
Envoyé par: nicola

Nan, pas un ' mais un ` (AltGr-7).

--
On ne prête qu’aux riches, et on a bien raison, parce que les autres remboursent difficilement.
-+- Tristan Bernard (1866-1947) -+-

Poste le Tuesday 6 September 2005 15:53:43
Répondre     Citer    
Re: suppression des espaces
Envoyé par: Eric S

désolé, première fois que je l'utilise celui là!

bref, ça marche, mais uniquement dans le répertoire où l'on se trouve, il ne va pas plus loin.

le problème c'est que, partant de ma racine de base /home/eric, je totalise plus de 4700 dossiers, sous-dossiers, sous-sous-dossiers, etc... toute ma documentation professionnelle depuis 15 ans... je n'utilise linux que depuis 1 an, et c'est seulement depuis lors que j'ai pris l'habitude de ne plus jamais mettre d'espaces dans mes noms de fichiers et dossiers, mais il reste 14 années de mauvaises pratique à modifier...

comment lui faire remonter tout cela à l'infini ????


Poste le Tuesday 6 September 2005 16:07:52
Répondre     Citer    
Re: suppression des espaces
Envoyé par: nicola

Normal, pour ça il faut un script récursif, dans le genre du premier que j’ai posté sur ce fil. Ou alors il faut faire appel à find, comme quelqu’un d’autre l’a proposé.

--
On ne prête qu’aux riches, et on a bien raison, parce que les autres remboursent difficilement.
-+- Tristan Bernard (1866-1947) -+-

Poste le Tuesday 6 September 2005 19:51:33
Répondre     Citer    
Re: suppression des espaces

Comme ceci

find / -exec mv "{}" "`echo {} | sed -e "s/ //g"`" \;

Ou en jouant avec IFS

--
Brugmans Frédéric

[www.brugmans.net]
[triathlon.sport-challenge.be]

Poste le Tuesday 6 September 2005 20:00:07
Répondre     Citer    
Aller à la page:  1 2 Page suivante
Page: 1 sur 2

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
suppression des espaces
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.
Nouveau sujet sur ce forum

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons