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то, что вы используете, выполнять редактирование на месте так, как вы, судя по всему, хотите сделать.

Связанный:

Связанный контент