解析bash命令的结果

时间:2012-11-05 18:49:42

标签: bash parsing

我是bash脚本的新手,我正试图从whois结果中解析出信息,特别是orgname和city字段。 是将结果保存在字符串中然后解析字符串以获取相关信息的正确方法吗?像:

    RESULT=whois <ip>
    # parse RESULT

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

可悲的是,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并保持其输出。对于&#34; .org&#34; case,这是你可能想要的,它会是这样的:

info=$(whois $ip)
org=$(echo "$info" | awk -F : '$1=="Registrant Organization"{print $2}')
city=$(echo "$info" | awk -F : '$1=="Registrant City"{print $2}')

答案 1 :(得分:0)

看到这个问题: How to set a variable to the output from a command in Bash?

cmd="yourcommand"
string=$($cmd)
echo $string