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

1

Eu quero substituir a string de todos os arquivos js exsting 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

    
por Chandani Patel 01.06.2018 / 10:27

1 resposta

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

dividido em partes:

  1. 's/this\.NAME=""/this.NAME="'
  2. "$name" , este é o bit 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, insira \" , não " , no resultado.

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

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

Relacionados:

por 01.06.2018 / 10:31

Tags