sed 不能使用变量来替换文件中的文本

sed 不能使用变量来替换文件中的文本

我想替换目录中存在的所有js文件的字符串

export name="test_user" &&
echo $customerName &&
sed -i -- 's/this.NAME=""/this.NAME=\"'$name'\"/g' *.js

如果我不使用空格,它可以正常工作,但使用上面的字符串命令会失败

答案1

's/this\.NAME=""/this.NAME="'"$name"'"/g'

分为几部分:

  1. 's/this\.NAME=""/this.NAME="'
  2. "$name",这是重要的一点:变量扩展必须被引用。
  3. '"/g'

另外,如果您\"在替换中使用,并且它用单引号引起来,那么您将在结果中插入\",而不是。"

您似乎还使用了一个名为 的变量customerName。我假设这是一个错字。

我不知道您使用的是否sed可以按照您想要的方式进行就地编辑。

有关的:

相关内容