我正在尝试使用bash替换db_config文件中字符串的子字符串。
db_config文件中的代码是
dbname=test_1
我想将“ test_1”替换为“生产”。
子字符串可以是 test_1 或 test1 或 testing 或任何随机字符串,但是格式为 dbname =(无论名称)
这需要更改为 dbname = production
我尝试了这两种语法。都不起作用。
sed -i -e 's/dbname=*/dbname="ihs"/g' db_config
sed -i -e 's/dbname=$/dbname="ihs"/g' db_config
我知道如何在python中解析它,但是我似乎无法在bash中找到解决方案。
谢谢!
答案 0 :(得分:1)
您应该使用捕获组和.*
来匹配键名之后的所有内容:
sed -i 's/^[[:blank:]]*\(dbname=\).*/\1production/' db_config
^[[:blank:]]*
匹配dbname=
之前的可选空白g
标志。