Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/12/2007, 09h26   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 2
Points : 2
Par défaut substitution :sed + $HOME

bonjour,

je veux faire une substitution avec comme motif de remplacement "$HOME", ca donne :

Code :
1
2
 
sed "s/truc_a_remplacer/$HOME/g" mon_fichier
évidement il interprète $HOME comme "/users/moi", et la commande ne passe pas.

j'ai essayé de protéger avec \, d'encadrer avec des [],(), ... sans succès.
Ca doit être un truc tout bête mais je ne trouve pas...

quelqu'un à déjà essayé de faire ça?
flouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 09h49   #2
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 496
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 496
Points : 9 677
Points : 9 677
Bonjour,
  • Il suffit de remplacer les " par des ', et l'interprétation ne se fait plus
  • Il suffit de faire précéder le $ par un \, et l'interprétation ne se fait plus

A toi de choisir la solution que tu préfères.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2007, 09h43   #3
Invité de passage
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 2
Points : 2
euh... je me suis mal expliqué désolé:

au fait ce n'est pas ca que je veux faire : dans la solution que tu propose, "truc_a_remplacer" sera substitué par "$HOME", moi je voudrai qu'il soitremplacé par la valeur de $HOME, soit "/users/moi".

évidement dès que $HOME est interprété, le commande n'a plus de sens.
merci quand même!
flouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2007, 10h00   #4
Membre émérite
 
Avatar de Pouic
 
Inscription : octobre 2004
Messages : 668
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2004
Messages : 668
Points : 904
Points : 904
Code :
sed "s,mon_machin,$HOME,g" mon_fichier
Tu peux choisir le caractère de séparation que tu veux après le 's', donc si tu choisis autre chose que '/', ça ne posera pas de problèmes.
__________________
Software becomes slower faster than hardware becomes faster

http://xrenault.developpez.com
API C standard (C ANSI )
Pouic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 09h12   #5
Invité de passage
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 2
Points : 2
ah oui cétait tout con...

ok merci beaucoup!
flouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h10.


 
 
 
 
Partenaires

Hébergement Web