- 论坛徽章:
- 39
|
本帖最后由 关阴月飞 于 2014-02-26 09:52 编辑
回复 15# l3lf
从ip列表中读取记录,你把结果直接重定向一下就行了:- [root@ awktest]# cat xx.sh
- #!/bin/bash
- while read LINE
- do
- #将起止IP地址转为成数字:
- star=`awk -F. '{print $1*256^3+$2*256^2+$3*256+$4}' <<<"${LINE%%-*}"`
- end=`awk -F. '{print $1*256^3+$2*256^2+$3*256+$4}' <<<"${LINE##*-}"`
- #生成两个IP之间所有地址
- seq $star $end |awk '{i=$0;print int(i/256^3),int(i%256^3/256^2),int(i%256^3%256^2/256),i%256^3%256^2%256}' OFS=.
- done < ip_list.txt
- [root@ awktest]# cat ip_list.txt
- 192.168.1.2-192.168.1.6
- 172.16.0.5-172.16.0.10
- [root@ awktest]# ./xx.sh
- 192.168.1.2
- 192.168.1.3
- 192.168.1.4
- 192.168.1.5
- 192.168.1.6
- 172.16.0.5
- 172.16.0.6
- 172.16.0.7
- 172.16.0.8
- 172.16.0.9
- 172.16.0.10
- [root@ awktest]# ./xx.sh >outfile.txt
复制代码 |
|