2016-09-14 71 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

替换字符串中的'['和']'不需要被转义。搜索字符串中的']'也没有(但我明白为什么人们会这样做)。 –