
ディレクトリ内に存在するすべての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'
パートに分けます:
's/this\.NAME=""/this.NAME="'
"$name"
重要なのは、変数の展開を引用符で囲む必要があるということです。'"/g'
\"
また、置換で を使用し、それが一重引用符で囲まれている場合は、結果に\"
ではなく が挿入されます。"
また、 という変数も使用しているようですcustomerName
。これはタイプミスだと思います。
sed
あなたが使用している が、あなたが望むような方法でインプレース編集を実行できるかどうかはわかりません。
関連している: