2016-09-14 3 views
-1

Я пишу скрипт bash для установки django с помощью базы данных postgresql автоматически. Теперь я хочу заменить имя базы данных по команде, так как она использует путь к файлу базы данных sqlite3.Как заменить [] в скрипте bash?

Я написал эту команду:

sudo sed -i "s/ALLOWED_HOSTS = []/ALLOWED_HOSTS = ['*']/g" $project_name/settings.py 

Но он показывает мне эту ошибку:

sed: -e expression #1, char 44: unterminated `s' command

Как изменить это, пожалуйста, помогите мне.

+0

' "s/allowed_hosts = \ [\]/allowed_hosts = \ [ '*' \]/г"' – ewcz

+1

Вы должны [править] Ваш вопрос, чтобы показать нам пример ввода и соответствующий желаемый результат. –

ответ

1

Побег одинарные кавычки, как показано ниже: -

sed -i "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \['*'\]/g" file 
+1

Я не уверен, почему цитаты должны быть экранированы здесь. –

+0

@TomFenech: Исправлено это спасибо! – Inian

+0

Невозможно также экранировать '' и ']' в заменяющей строке. В строке поиска также нет '' '(но я могу понять, почему люди это сделают). –

Смежные вопросы