13 lines
304 B
Plaintext
13 lines
304 B
Plaintext
|
#! /bin/sh
|
||
|
set -euf
|
||
|
|
||
|
netmask=$1
|
||
|
|
||
|
binaryNetmask=$(echo $1 | sed 's/^/obase=2;/;s/\./;/g' | bc | tr -d \\n)
|
||
|
binaryPrefix=$(echo $binaryNetmask | sed -n 's/^\(1*\)0*$/\1/p')
|
||
|
if ! echo $binaryPrefix | grep -q .; then
|
||
|
echo $0: bad netmask: $netmask >&2
|
||
|
exit 4
|
||
|
fi
|
||
|
printf %s $binaryPrefix | tr -d 0 | wc -c
|