使用sed或awk的cidr转换器

时间:2015-02-26 12:44:25

标签: awk sed ip cidr

我有一个带有cidr格式IP地址的文本文件。每行一个cidr。如何将cidrs转换为IP范围,即启动IP - 结束IP。每行一个IP范围。请注意 - .

两侧的空格

1 个答案:

答案 0 :(得分:2)

您最好使用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