如何使用sed替换环境变量

use*_*mda 6 command-line environment-variables sed

我在文件中有以下字符串

$ENVVAR
someText ($ENVVAR)
Run Code Online (Sandbox Code Playgroud)

我想使用,sed以便仅将变量的第二次出现替换为环境变量的值

所以

$ENVVAR
someText (value of env variable)
Run Code Online (Sandbox Code Playgroud)

Zan*_*nna 9

这是一些丑陋的花哨引用的案例。单引号停止 shell 参数扩展,双引号允许它们。

您可以将引号视为sed表达式中的开关,关闭一种类型的引用并打开另一种类型,如下所示:'strong'"weak"'strong'

使用$USER作为一个例子:

$ cat file
$USER
some text ($USER)

$ sed 's/($USER)/('"$USER"')/' file
$USER
some text (zanna)
Run Code Online (Sandbox Code Playgroud)