2016-09-14 94 views
-1

我正在寫一個bash腳本來自動安裝dgango和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 = \ [ '*' \]/G」' – ewcz

+1

你應該[編輯]您問題向我們展示一個輸入和相應的期望輸出的例子。 –

回答

1

逃生,如下單引號: -

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

我不確定爲什麼報價需要在這裏轉義。 –

+0

@TomFenech:解決它,謝謝! – Inian

+0

替換字符串中的'['和']'不需要被轉義。搜索字符串中的']'也沒有(但我明白爲什麼人們會這樣做)。 –