如何使用 sed 从字符串中删除变量值

如何使用 sed 从字符串中删除变量值

我正在用 bash 编写脚本,可以使用以下代码从句子中删除字符串:

echo 'This is a foo test' | sed 's/\<foo\>//g'

输出:“这是一个测试”

但是,我希望能够用变量替换 foo。我尝试了下面的命令,但它并没有从句子中删除值。

temp="foo"
echo 'This is a foo test' | sed 's/\<$temp\>//g'

输出:'这是一个 foo 测试'

答案1

在单引号内,变量不会被替换(因为$在单引号内没有特殊含义)。您可以改用双引号:

echo 'This is a foo test' | sed "s/\<$temp\>//g"

相关内容