仕事で使用するスクリプト内でネットワークのCIDER表記をネットマスクに変換する必要があり、その処理を関数化したソースを教えて頂いたのでここに公開。

ソース

#!/bin/bash
function ciconv () {
  unset Z; for X in `seq 1 $1`;do Z=${Z}1;done
  zero=`expr 32 - $1`; for X in `seq 1 $zero`;do Z=${Z}0; done
  A=`dc -e "2i $(echo $Z|cut -c1-8) p"`
  B=`dc -e "2i $(echo $Z|cut -c9-16) p"`
  C=`dc -e "2i $(echo $Z|cut -c17-24) p"`
  D=`dc -e "2i $(echo $Z|cut -c25-32) p"`
  echo "$A.$B.$C.$D"
}

使い方

ciconv 24

とやれば、

255.255.255.0

を出力する。