我是新手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