Rechercher : dans
Par :

[shell] Substitution dynamique de chaines

Dernière réponse le 3 jan 2008 à 09:30:52 pascal$$, le 3 jan 2008 à 09:21:26 
 Signaler ce message aux modérateurs

Bonjour,
Debutant en shell, je recherche comment substituer des chaines de caracteres de manière dynamique,Example:
Si je tape echo 'un/deux/trois ' | sed 's/un /quatre/' j obtiens quatre/deux/trois jusque la ok
par contre comment faire pour que si je tape:
variable1=un
variable2=quatre

puis echo 'un/deux/trois' | sed 's/$variable1/$variable2/' j obtienne le resultat:quatre/deux/trois
Merci d avance!!

Configuration: Windows XP
Firefox 2.0.0.11

Meilleures réponses pour « [shell] Substitution dynamique de chaines » dans :
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
Connecter le PC à la chaîne hifi sans fil VoirVotre PC est dans le bureau et votre chaîne hifi dans le salon et vous souhaiteriez profiter du son de votre installation hifi pour écouter vos MP3 stockés sur l'ordinateur ? Cette fiche a pour objectif de recenser les différentes possibilités de...
[Sécurité] IP statique (fixe) ou dynamique ? VoirQu'appelle-t-on IP fixe/dynamique ? Comment choisir son adresse IP ? Que choisir entre adresse IP fixe ou dynamique ? Comment obtenir une adresse IP fixe ? Qu'appelle-t-on IP fixe/dynamique ? Quand vous vous connectez à internet, votre...
Télécharger IP Dynamique VoirSi vous devez héberger un site web sur votre ordinateur, mais que vous n’avez pas d’adresse IP fixe, il est assez difficile d’accéder à votre page pour les internautes. IP Dynamique est un outil permettant d’héberger un site...
Systèmes UNIX - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système...
Connecter l'ordinateur à une chaîne HIFI VoirPourquoi brancher son PC sur une chaîne? Les ordinateurs fournissent désormais un son aussi bon que des chaînes hifi. Il est possible de s'en servir pour écouter de la musique notamment grâce aux fichiers mp3 qui restituent un son quasimment...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...

1

 jipicy, le 3 jan 2008 à 09:30:52

Salut,

Tout est question de quotes !

Il faut simplement que tu encadres l'expression avec "sed" par des quotes doubles afin que les variables soient interprétées par le shell :

$ variable1=un;variable2=quatre
$ echo 'un/deux/trois' | sed "s/$variable1/$variable2/"
quatre/deux/trois
ou si tu veux conserver les quotes simples autour de l'expression, à ce moment là, il faut quoter de cette façon (beaucoup moins lisible):
$ echo 'un/deux/trois' | sed 's/'"$variable1"'/'"$variable2"'/'
quatre/deux/trois
autrement dit, refermer chaque quote simple avant la variable, elle même entourée de quotes doubles, et rouvrir la quote simple juste derrière et ainsi de suite...

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy
Collection CommentÇaMarche.net