我在文件中有以下字符串
$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)