sed não funciona com variáveis ​​para substituir texto em arquivos

sed não funciona com variáveis ​​para substituir texto em arquivos

Quero substituir a string de todos os arquivos js existentes nos diretórios

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

Se eu não usar espaço, ele funciona bem, mas com a string acima o comando falha

Responder1

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

Dividido em partes:

  1. 's/this\.NAME=""/this.NAME="'
  2. "$name", esta é a parte importante: a expansão da variável deve ser citada.
  3. '"/g'

Além disso, se você usar \"na substituição e estiver entre aspas simples, você inserirá \", e não ", no resultado.

Você também parece usar uma variável chamada customerName. Presumo que seja um erro de digitação.

Se o sedque você está usando pode fazer a edição no local da maneira que você parece querer, não sei.

Relacionado:

informação relacionada