#1 Le 11/04/2008, à 13:32
- Mathieu11
[Resolu] Sed : Changer + en espace et copier vers le repertoire
Bonjour, j'ai un petit souci de script
J'ai dans un fichier texte un nom de dossier ou les espaces sont remplaces par des +.
J'aimerais a l'aide de la commande sed remplacer les + par des espaces et ensuite copier un fichier vers le nom de dossier ainsi obtenu.
Pour change le + en espace je fais ceci
dossier=`sed 's/+/\\\\ /g' fichier.txt`
Les trois \\\ me servent a en inserer un et je mets \ suivi d'un espace a la suite.
Ainsi Mon+dossier devient Mon\ dossier
Mais ensuite lorsque je fais
nautilus ~/$dossier
Il refuse l'ouvrir. En fait j'ai l'impression qu'il cherche la partie Mon au bon endroit mais la partie dossier a l'endroit ou j'execute le script....
Quelqu'un sait pourquoi et pourrait m'aider svp ?
Merci d'avance
Dernière modification par Mathieu11 (Le 11/04/2008, à 15:58)
Vostro 1400
Hors ligne
#2 Le 11/04/2008, à 13:35
- wblitz
Re : [Resolu] Sed : Changer + en espace et copier vers le repertoire
tu peux poster la partie complète du script qui réalise cette opération ? (pour voir comment est définie $dossier entre autre )
"Un optimiste, c'est un homme qui plante deux glands et qui s'achète un hamac" - Jean de Lattre de Tassigny
Pensez à mettre [RÉSOLU] dans le sujet de vos posts une fois qu'ils le sont...
quelques docs
Hors ligne
#3 Le 11/04/2008, à 13:44
- Mathieu11
Re : [Resolu] Sed : Changer + en espace et copier vers le repertoire
Mon fichier texte s'appelle current et il y a ceci dedans
Sarah+Brightman
Il se trouve dans ~/.pochette
Puis mon script ressemble a ca
cd ~/.pochette
artpath=`sed 's/+/\\\\ /' current`
nautilus $path"/"$artpath
Sachant que path est une variable qui a ete demande avant par zenity et ne contient pas d'espace (du style /media/sda5/Music)
Vostro 1400
Hors ligne
#4 Le 11/04/2008, à 14:08
- wblitz
Re : [Resolu] Sed : Changer + en espace et copier vers le repertoire
essaie avec ça :
cd ~/.pochette
artpath=`sed 's@\+@ @' current`
nautilus "${path}/${artpath}"
"Un optimiste, c'est un homme qui plante deux glands et qui s'achète un hamac" - Jean de Lattre de Tassigny
Pensez à mettre [RÉSOLU] dans le sujet de vos posts une fois qu'ils le sont...
quelques docs
Hors ligne
#5 Le 11/04/2008, à 15:33
- Mathieu11
Re : [Resolu] Sed : Changer + en espace et copier vers le repertoire
Ca marche comme ca merci beaucoup
Vostro 1400
Hors ligne
#6 Le 11/04/2008, à 15:39
- wblitz
Re : [Resolu] Sed : Changer + en espace et copier vers le repertoire
un petit résolu dans le sujet alors
"Un optimiste, c'est un homme qui plante deux glands et qui s'achète un hamac" - Jean de Lattre de Tassigny
Pensez à mettre [RÉSOLU] dans le sujet de vos posts une fois qu'ils le sont...
quelques docs
Hors ligne
#7 Le 11/04/2008, à 15:55
- Mathieu11
Re : [Resolu] Sed : Changer + en espace et copier vers le repertoire
Encore une petite question en fait, comment faire pour qu'il le fasse si j'ai plusieurs + (3 ou plus) ?
Vostro 1400
Hors ligne
#8 Le 11/04/2008, à 15:57
- wblitz
Re : [Resolu] Sed : Changer + en espace et copier vers le repertoire
ajoute "g" après le dernier arobase :
sed 's@\+@ @g'
edit : je préfère utiliser "@" comme séparateur, ça permet de remplacer les "/" plus facilement par exemple
Dernière modification par wblitz (Le 11/04/2008, à 17:22)
"Un optimiste, c'est un homme qui plante deux glands et qui s'achète un hamac" - Jean de Lattre de Tassigny
Pensez à mettre [RÉSOLU] dans le sujet de vos posts une fois qu'ils le sont...
quelques docs
Hors ligne
#9 Le 11/04/2008, à 15:57
- Mathieu11
Re : [Resolu] Sed : Changer + en espace et copier vers le repertoire
Ok j'ai trouvé en fait les @ remplacent des / donc je rajoute un g a la fin. Merci
Vostro 1400
Hors ligne
#10 Le 11/04/2008, à 16:45
- Sysko le prospecteur
Re : [Resolu] Sed : Changer + en espace et copier vers le repertoire
non le g veut dire "global" -> sans le g ton script sed ne remplacera que la première chaine de texte correpondant à ton expression réguliére et avec g à la fin tu précise qu'il doit remplacer toutes les chaines correspondantes à la regexp
Projet tatoeba : projet collaboratif visant à créer un corpus de phrases d'exemples traduites dans le plus de langues possibles
Hors ligne
#11 Le 11/04/2008, à 17:19
- Mathieu11
Re : [Resolu] Sed : Changer + en espace et copier vers le repertoire
Oui j'avais saisi ce que je voulais dire c'est que c'est comme sed 's/\+/ /g' avec des @ au lieu des /
Dernière modification par Mathieu11 (Le 11/04/2008, à 18:41)
Vostro 1400
Hors ligne
#12 Le 11/04/2008, à 18:13
- yohann
Re : [Resolu] Sed : Changer + en espace et copier vers le repertoire
sinon pour remplacer juste un caractere par un autre tr est un poil plus pratique je trouve
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne