- 论坛徽章:
- 0
|
写控制列表常要把形如255.255.224.0的掩码转换成/20形式
以下脚本实现格式的转换
文件myroute.txt中保存要转换的数据,格式如下:
58.59.128.0 255.255.128.0
58.60.8.0 255.255.248.0
58.61.32.0 255.255.255.128
58.61.32.128 255.255.255.255
58.61.224.0 255.255.224.0
使用方法 $ ./maskto.sh myroute.txt
显示如下:
58.59.128.0/17
58.60.8.0/21
58.61.32.0/25
58.61.32.128/32
./maskto.sh脚本如下:
#!/bin/sh
while read line
do
ip=`echo $line|awk '{print $1}'`
mask_10=`echo $line|awk '{print $2}'`
mask_2=""
num=0
for i in 1 2 3 4
do
mask_2=${mask_2}`echo $mask_10|awk -F. -v i=$i '{printf("obase=2;ibase=10;%s\n",$i)
}'|bc|sed 's/./&空格/g'`
done
for i in $mask_2
do
if [ $i = "1" ];then
let num=$num+1>/dev/null
fi
done
echo $ip/$num
#echo $ip,$mask_10
done < $1 |
|