Replace string in linux bash
This question already has an answer here:
Use double-quotes around sed for variable expansion & to preserve single quotes.
sed -i "s/os.path.join(BASE_DIR, 'db.sqlite3'),/$project_name,/g" "$project_name/settings.py"
tested working fine on GNU sed version 4.2.1
You should escape the quotes in 'db.sqlite3' :
sudo sed -i 's/os.path.join(BASE_DIR, '''db.sqlite3'''),/'$project_name',/g' $projects_name/settings.py
Your sed pattern is os.path.join(BASE_DIR, db.sqlite3), because quotes in 'db.sqlite3' are not interpreted as literal ' . Instead they close and reopen the sed command.
上一篇: 命令通过'bash失败
下一篇: 在linux bash中替换字符串
