![如何在更改网络掩码时保留 sed 中的 IP 地址?](https://linux22.com/image/204913/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%9B%B4%E6%94%B9%E7%BD%91%E7%BB%9C%E6%8E%A9%E7%A0%81%E6%97%B6%E4%BF%9D%E7%95%99%20sed%20%E4%B8%AD%E7%9A%84%20IP%20%E5%9C%B0%E5%9D%80%EF%BC%9F.png)
我有以下问题:我想更改 Debian 中大量 IP 地址的网络掩码,/etc/network/interfaces
因为我要扩展网络。更改后我将用来screen ifdown ens18 && ifup ens18
应用更改。网络掩码的替换在我的示例中有效,问题是我需要保持 ip 地址中的 26 不变。我有sed
一行将所有 26 更改为 25,但这当然不是我想要的。
我有:
iface ens18 inet static
address 195.26.153.26/26
我想:
iface ens18 inet static
address 195.26.153.26/25
我怎样才能实现这个目标?
答案1
要仅匹配网络掩码,请将其与分隔符匹配:
sed sX/26X/25X
如果您确定网络掩码位于行尾,则可以进一步限制匹配:
sed 'sX/26$X/25X'