20

如果行以使用 sed 的另一个字符串开头,如何替换文件中的字符串?

例如,替换这一行:

connection = sqlite://keystone:[YOURPASSWORD]@[YOURIP]/keystone

有了这条线:

connection = mysql://keystone:password@10.1.1.10/keystone
4

4 回答 4

27

回答:

sed '/^start_string/s/search_string/replace_string/'

http://www.gnu.org/software/sed/manual/sed.html#Addresses上的信息

于 2013-01-10T16:15:36.037 回答
4

你可以这样做:

sed -ri 's/sqlite/mysql/g' YOURFILE
于 2013-01-10T16:19:18.603 回答
3

如果要更改以模式开头并以其他内容结尾的整行,可以使用命令c 描述示例

sed -i '/^connection = sqlite/c\connection = mysql://keystone:password@10.1.1.10/keystone' your_file
于 2017-12-31T07:06:24.957 回答
2
sed '/^string1/ { s,string2,string3, }' file

这将在所有以 string1 开头的行上用 string3 替换 string2。

于 2013-01-10T16:15:56.833 回答