我正在使用以下代码替换字符串
在 shell 脚本中。
echo $LINE | sed -e 's/12345678/"$replace"/g'
但它已被
$replace
代替,而不是该变量的值。有人能告诉我出了什么问题吗?
最佳答案
如果要解释$replace
,则不应使用单引号,因为它们会阻止变量替换。
尝试:
echo $LINE | sed -e "s/12345678/\"${replace}\"/g"
假设您要插入引号。如果您不想引号,请使用:
echo $LINE | sed -e "s/12345678/${replace}/g"
成绩单:
pax> export replace=987654321
pax> echo X123456789X | sed "s/123456789/${replace}/"
X987654321X
pax> _
请小心确保
${replace}
不具有对sed
有意义的任何字符(例如,像/
),因为除非转义,否则它将引起困惑。但是,正如您所说,如果您要用另一个替换一个数字,那应该不是问题。