带正则表达式的sed命令

时间:2016-02-28 07:26:18

标签: regex linux sed command

我有一个配置文件,它将每个配置存储在以@ like:

开头的行中
.
@server_ip=192.168.0.1
@path=/home/me

我想写一个 sed replace in-place 命令来替换 @server_ip 前面的ip。关键是 192.168.0.1 是例如,真正的配置可以是任何IP或空。 编辑我该如何编写命令? 谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

使用GNU sed:

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

或变量:

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

输出:

@server_ip=127.0.0.1

如果您要“就地”修改文件,请使用sed的选项-i