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 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 wink)


"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 wink


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 tongue


"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 wink

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