带正则表达式的 sed 命令

sed command with regular expression

我有一个配置文件,它将每个配置存储在以 @ 开头的行中,例如:

.
@server_ip=192.168.0.1
@path=/home/me

我想写一个sed就地替换命令来替换@server_ip[=19=前面的ip ].重点是 192.168.0.1 是例如真实配置可以是任何 ip 或空。 编辑 我该如何编写命令? 感谢您的帮助

使用 GNU sed:

sed 's/^\(@server_ip=\).*/27.0.0.1/' file

或使用变量:

newip="127.0.0.1"
sed 's/^\(@server_ip=\).*/'"$newip"'/' file

输出:

@server_ip=127.0.0.1

如果您想编辑文件 "in place" 使用 sed 的选项 -i