私は bash スクリプトを初めて使用し、whois の結果、特に orgname フィールドと city フィールドから情報を解析しようとしています。結果を文字列に保存し、その文字列を解析して関連情報を取得する適切な方法はありますか? お気に入り:
RESULT=whois <ip>
# parse RESULT
どんな助けでも大歓迎です。
悲しいことに、whois
出力は機械ではなく人間が読むことを意図しているようです。その形式は、関心のあるルート ドメインによって異なります。たとえば、次のwhois uio.no
ようなものが返されます。
NORID Handle...............: UIO2O-NORID
Type.......................: organization
Name.......................: UNIVERSITETET I OSLO
Id Type....................: organization_number
Id Number..................: 971035854
Registrar Handle...........: REG2-NORID
Post Address...............: Postboks 1059, Blindern
whois tasvideos.org
生産しながら
Registrant ID:ACTR120531657
Registrant Name:Andres Delikat
Registrant Organization:tasvideos.org
Registrant Street1:5505G Creek Ridge Ln
Registrant Street2:
Registrant Street3:
Registrant City:Raleigh
これは、このようなものの解析が見ているものに依存することを示すためのものであり、私が提供するソリューションはすべての場合に機能するとは限りません. しかし、この情報を抽出する最も簡単な方法は、awk
その出力を呼び出して保持することです。おそらく必要な「.org」の場合、次のようになります。
info=$(whois $ip)
org=$(echo "$info" | awk -F : '$1=="Registrant Organization"{print $2}')
city=$(echo "$info" | awk -F : '$1=="Registrant City"{print $2}')
この質問を参照してください: Bashのコマンドからの出力に変数を設定するにはどうすればよいですか?
cmd="yourcommand"
string=$($cmd)
echo $string