使用bash在IP地址之间查找和打印范围

时间:2011-08-15 00:11:49

标签: bash

我有一个在文件中使用的IP地址:

192.168.1.121 192.168.1.141 192.168.1.172 192.168.1.180 192.168.1.180 192.168.1.181 192.168.1.182 192.168.1.185 192.168.1.190

我想要做的是能够使用Bash打印出使用过的IP地址之间的范围。因此,例如通过查看示例192.168.1.121,但我希望能够打印出121和141之间的所有IP地址。类似地,在141和172之间。我不担心在121之前打印IP地址。

有办法做到这一点吗?

由于 库提

1 个答案:

答案 0 :(得分:0)

addresses=( `< listofnums` )
network=${addresses[0]%.*}
hosts=( ${addresses[@]##*.} )

for (( i=${hosts[0]}; i<255; ++i ))
do
        case "${hosts[@]}" in *"$i"*) ;; *) echo "$network.$i" ;; esac
done