我是新來的bash腳本,並試圖從whois結果中解析出信息,特別是orgname和city字段。 將結果保存在字符串中然後解析字符串以獲取相關信息的正確方法是?如:解析bash命令的結果
RESULT=whois <ip>
# parse RESULT
任何幫助將不勝感激。
我是新來的bash腳本,並試圖從whois結果中解析出信息,特別是orgname和city字段。 將結果保存在字符串中然後解析字符串以獲取相關信息的正確方法是?如:解析bash命令的結果
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}')
感謝您提供非常有用的信息! – user1190650
如果這解決了您的問題,請記住將問題標記爲已回答。 – amaurea
看到這個問題: How to set a variable to the output from a command in Bash?
cmd="yourcommand"
string=$($cmd)
echo $string
要記錄結果:'RESULT = $(WHOIS查詢)'你給試圖運行語法命令「」,RESULT的值設置爲環境中的「whois」。 –
甚至可以在使用'RESULT = $(whois | awk'/ OrgName/{print $ 0}/City/{print $ 0}')'錄製之前開始解析,它只會在您的變量中存儲所需的信息。 –
或者甚至添加'awk -F:'/ OrgName/{print $ 2}'等等,假設whois信息在任何地方都以相同的方式格式化。注:我只是嘗試了一個既沒有OrgName也沒有City字段的主機,所以你不會總是能夠獲得這些信息。 – amaurea