Я работаю над скриптом, который выполняет подсети. До сих пор, это выглядит следующим образом (в части):Сценарий 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)}'
отделить октет, но я получаю дополнительную точку на начале или в конце. - Я хочу рассчитать, сколько тузов имеет сетевая маска, но я действительно не могу найти способ получить вывод
echo "obase=2;$br1"+"obase=2;$br2"+"obase=2;$br3"+"obase=2;$br4"| bc | awk
в строку, чтобы я мог их сосчитать.
Любые предложения?
пример не завершена, так что трудно сказать совсем то, что происходит здесь. – danfuzz