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可以按照您想要的方式進行就地編輯。

有關的:

相關內容