我想修改“relvir”的 IP 地址:
127.0.0.1 localhost
127.0.1.1 debian-foo.jimnet debian-foo
54.218.208.77 server1
31.187.98.19 machine2
51.39.207.120 relvir
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
我试图这样做,但我不明白为什么它不起作用:
cat sedtest | sed 's/.+relvir$/1.2.3.4 relvir/'
提前致谢!
答案1
和基本正则表达式 sed将按字面意思处理+
,以执行所需的替换,使用*
量词:
cat sedtest | sed 's/.*relvir$/1.2.3.4 relvir/'
继续+
作为量词使用扩展正则表达式应用-E
选项:
cat sedtest | sed -E 's/.+relvir$/1.2.3.4 relvir/'
答案2
我相信这就是您正在寻找的
猫 sedtest | sed 's/.\+relvir$/1.2.3.4 relvir/'