sed no funciona con variables para reemplazar texto en archivos

sed no funciona con variables para reemplazar texto en archivos

Quiero reemplazar la cadena de todos los archivos js que existen en los directorios

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

Si no uso el espacio, funciona bien pero con la cadena anterior el comando falla

Respuesta1

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

Desglosado en partes:

  1. 's/this\.NAME=""/this.NAME="'
  2. "$name", esto es lo importante: se debe citar la expansión de la variable.
  3. '"/g'

Además, si lo usa \"en el reemplazo y está entre comillas simples, entonces insertará \", no ", en el resultado.

También parece utilizar una variable llamada customerName. Supongo que se trata de un error tipográfico.

Si el sedque estás utilizando puede realizar ediciones in situ de la manera que pareces desear, no lo sé.

Relacionado:

información relacionada