如何将cidr ip范围填充为bash脚本
在文件中有CIDR范围的列表。 如果它们是有效的,则其中一些不是“格式良好的”,但一些程序不会接受它们 示例:192.168/24 解析为:192.168.0.0/24 所以,在这种情况下,应该检查是否有4个八位组。 如果没有,脚本应该为每个缺少的脚本应用.0 1.1.1/24变为1.1.1.0/24 2.2/16变为2.2.0.0/16 谢谢:-)诀窍是如何将cidr ip范围填充为bash脚本,bash,ip,cidr,Bash,Ip,Cidr,在文件中有CIDR范围的列表。 如果它们是有效的,则其中一些不是“格式良好的”,但一些程序不会接受它们 示例:192.168/24 解析为:192.168.0.0/24 所以,在这种情况下,应该检查是否有4个八位组。 如果没有,脚本应该为每个缺少的脚本应用.0 1.1.1/24变为1.1.1.0/24 2.2/16变为2.2.0.0/16 谢谢:-)诀窍是 将(部分)地址拆分为数组 在数组末尾追加4个零 获取结果数组的前四个元素,并使用 例如: cidr=192.168/24 IFS=. re
cidr=192.168/24
IFS=. read -a octets <<< "${cidr%/*}"
octets+=(0 0 0 0)
printf -v network "%d.%d.%d.%d" "${octets[@]:0:4}"
printf '%s/%d\n' "$network" "${cidr#*/}"
cidr=192.168/24
如果=。读a八位组