使用sed或awk的cidr转换器

使用sed或awk的cidr转换器,awk,sed,ip,cidr,Awk,Sed,Ip,Cidr,我有一个IP地址为cidr格式的文本文件。每条线一杯苹果酒。如何将CIDR转换为IP范围,即起始IP-结束IP。每行一个IP范围。请注意-两侧的空格。您最好使用ipcalc: ipcalc 192.168.0.1/24 -nb | awk '/HostMin/{min=$NF} /HostMax/{max=$NF} END {print min" - "max}' 192.168.0.1 - 192.168.0.254 循环文件的简单脚本: #!/bin/bash cat file.txt

我有一个IP地址为cidr格式的文本文件。每条线一杯苹果酒。如何将CIDR转换为IP范围,即起始IP-结束IP。每行一个IP范围。请注意-

两侧的空格。您最好使用
ipcalc

ipcalc 192.168.0.1/24 -nb | awk '/HostMin/{min=$NF} /HostMax/{max=$NF} END {print min" - "max}'
192.168.0.1 - 192.168.0.254

循环文件的简单脚本:

#!/bin/bash

cat file.txt |\
while IFS= read ip; do
    ipcalc "$ip" -nb |\
    awk '   /HostMin/{min=$NF} 
            /HostMax/{max=$NF} 
            END {print min" - "max}'
done

感谢您的回答,但显然ipcalc不会获取一个充满cidr地址的文本文件。是否有任何解决方法,可能需要做一段时间的循环我已经添加了一个简单的脚本来循环您的文件。您应该给出一些示例行,以便awk/sed专家可以在不了解cidr的情况下找到解决方案。