[shell] Substitution dynamique de chaines
pascal$$
Messages postés
39
Statut
Membre
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
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!!
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!!
A voir également:
- [shell] Substitution dynamique de chaines
- Classic shell - Télécharger - Personnalisation
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Tableau croisé dynamique - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Liste déroulante dynamique excel - Guide
1 réponse
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 :
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/troisou 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/troisautrement 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...