web-dev-qa-db-fra.com

Comment utiliser sed pour remplacer une variable d'environnement

J'ai les chaînes suivantes dans un fichier

$ENVVAR
someText ($ENVVAR)

Je veux utiliser sed de sorte que seule la deuxième occurrence de la variable soit remplacée par la valeur de la variable d'environnement

alors

$ENVVAR
someText (value of env variable)
4
user_mda

C'est un cas pour certains laid citant de fantaisie. Les guillemets simples arrêtent les extensions de paramètres du shell et les guillemets doubles pour les autoriser.

Vous pouvez considérer les guillemets comme des commutateurs on-off dans une expression sed, en fermant un type de guillemet et en ouvrant un autre comme ceci: 'strong'"weak"'strong'

En utilisant $USER comme exemple:

$ cat file
$USER
some text ($USER)

$ sed 's/($USER)/('"$USER"')/' file
$USER
some text (zanna)
3
Zanna