我正在使用以下代码替换字符串
在 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有意义的任何字符(例如,像/),因为除非转义,否则它将引起困惑。但是,正如您所说,如果您要用另一个替换一个数字,那应该不是问题。

10-07 19:28
查看更多