如何使用 sed 替换环境变量

如何使用 sed 替换环境变量

我在文件中有以下字符串

$ENVVAR
someText ($ENVVAR)

我想使用sed以便只有变量的第二次出现被替换为环境变量的值

所以

$ENVVAR
someText (value of env variable)

答案1

这是一些丑陋的花哨引用的情况。单引号会阻止 shell 参数扩展,而双引号则允许扩展。

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

$USER举例来说:

$ cat file
$USER
some text ($USER)

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

相关内容