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あなたが使用していることがあなたが望む方法で内部編集を許可するかどうかわかりません。

関連:

関連情報