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