我有以下文件:
proto udp
resolv-retry infinite
nobind
#Single line of those bellow, I've added multiple for variations of it
remote fi.server.com 50505
remote us-cityone.server.com 5050
remote uk-citytwo.server.com 50500
remote us-citythree.server.com 56546
remote sweden.server.com 6546546
rest of config file..
让我说得更清楚,这是一个 OpenVPN conf 文件。我只想替换以remote servername 5555
-开头的行服务器名称另一种。
我添加了多remote servername 5555
行只是为了作为示例,因为它们都代表我可能会发生的变化。
我只想匹配中间列等,fi.server.com
并使用不同的名称us-newyorkcity.server.com
替换它。sed
为什么这样的模式不起作用?
sed -i.bak 's/\w+(-|\.)\.?\w+\.?\.com/g' filename
我也试过这个..
sed -i.bak 's/\w+(-|\.)\.?\w+\.?\.\w+/g' filename
进一步注意,从示例来看,us-newyorkcity.server.com
只有server.com
部分是静态的。休息已改变。
感谢帮助!
答案1
假设一个变量NEWNAME
的名称是您想要插入的,您应该能够使用以下内容:
sed -i.bak "s|^\(remote \)\([^ ]*\)\([ ]*[0-9]*\)|\1$NEWNAME\3|" filename