サブネット計算を行うスクリプトに取り組んでいます。これまでのところ、次のようになっています (部分的に)。
echo "Subnet Address : "$sn1.$sn2.$sn3.$sn4
echo "BCast Address : "$br1.$br2.$br3.$br4
echo -e "\nSubnet address in binary" :
echo "obase=2;$ip1"+"obase=2;$ip2"+"obase=2;$ip3"+"obase=2;$ip4" \
| bc | awk '{printf("%08d",$ip1)}'
echo -e "\nBroadcast address in binary" :
echo "obase=2;$br1"+"obase=2;$br2"+"obase=2;$br3"+"obase=2;$br4" \
| bc | awk '{printf("%08d",$br1)}'
これにより、次の出力が得られます。
Subnet address in binary :
11000010101010100000001100000000
Broadcast address in binary :
11000010101010100000001100011111
- オクテットを分離しよう
'{printf("%08d.",$br1)}'
と'{printf(".%08d",$br1)}'
しましたが、最初または最後に余分なドットが表示されます。 echo "obase=2;$br1"+"obase=2;$br2"+"obase=2;$br3"+"obase=2;$br4"| bc | awk
ネットマスクにあるエースの数を計算したいのですが、それらをカウントできるように、の出力を文字列に取得する方法が本当に見つかりません。
助言がありますか?