我正在研究子網計算的腳本。到目前爲止,它看起來像這樣(部分):Bash腳本,從obase解析二進制數字符串?
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)}'
到八位位組分開,但我對獲得額外的點開始或結束。 - 我想計算netmask有多少個aces,但是我真的無法找到一種方法將
echo "obase=2;$br1"+"obase=2;$br2"+"obase=2;$br3"+"obase=2;$br4"| bc | awk
的輸出轉換爲字符串,因此我可以對它們進行計數。
有什麼建議?
的例子是不完整的,所以很難說相當這裏發生了什麼上。 – danfuzz 2013-03-07 19:16:56