未指定的字符串替换问题

时间:2012-10-07 08:37:28

标签: string shell

我有一个未指定的IP,我想更改其中的一部分(对于任何ipaddress,它的第三部分为254),例如。

172.16.1.2  -> 172.16.254.2<br/> 
192.168.2.6 -> 192.168.254.6<br/> 
x.x.x.x     -> x.x.254.x<br/>

我应该如何使用shell脚本?

1 个答案:

答案 0 :(得分:0)

sed是一种经典的解决方案。

 sed -E -e 's/(.*)[.](.*)[.](.*)[.](.*)/\1.\2.254.\4/'

找到有三个点的东西并复制除第三个之外的所有东西,然后用254替换。

然后使用它:

echo a.b.c.d  | sed -E -e 's/(.*)[.](.*)[.](.*)[.](.*)/\1.\2.254.\4/'