如何在更改网络掩码时保留 sed 中的 IP 地址?

如何在更改网络掩码时保留 sed 中的 IP 地址?

我有以下问题:我想更改 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'

相关内容