whoisから複数ネームサーバの抜き出し

whoisコマンドでドメイン情報を抜いてくると、ネームサーバが複数設定されていることがあります。

$ whois yahoo.co.jp
[ JPRS database provides information on network administration. Its use is    ]
[ restricted to network administration purposes. For further information,     ]
[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]

Domain Information: [ドメイン情報]
a. [Domain Name]                 YAHOO.CO.JP

・・・

p. [Name Server]               ns01.yahoo.co.jp
p. [Name Server]               ns02.yahoo.co.jp
p. [Name Server]               ns11.yahoo.co.jp
p. [Name Server]               ns12.yahoo.co.jp

・・・

Name Serverと書いてある行をgrepして文字列取得すると一つの文字列にしてしまうので、 複数にバラしたいと思いました。

  CHECK_SERVER=`whois $check | grep "Name Server" | cut -c 17- | tr -d " "| sed "s/$/ /g" | tr -d "\r"`
  set -- $CHECK_SERVER

  CHECK_SERVER1=`echo $1`
  CHECK_SERVER2=`echo $2`
 ・・・

  echo $CHECK_SERVER1
  echo $CHECK_SERVER2
 ・・・

setで空白ごとに切り離しができますので、これらを取得します。 上記は管理するドメインの持つネームサーバ数が二つまでの場合ですので、それ以上の場合は変数を増やせばいいと思います。

参考:シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的