2013-03-07 60 views
1

我需要查找的NS一對夫婦域的,我需要把結果在數組中。 現在我只能設法得到第一個結果來回顯,但我需要所有結果,最好在數組中。擊:DNS查找,把NS在陣列

有誰知道該怎麼做?

例如,dig google.com ns給了我4個結果ns[1-4].google.com 我只是這樣做:

dig google.com ns | awk '/^;; ANSWER SECTION:$/ { getline ; print $5 '} 

但是,只打印第一線。我不知道如何將所有結果放入數組中。

回答

0

你真的需要一個數組的答案還是你只是要輸出的ANSWER SECTION

$ dig google.com ns | awk 'p{print $5}/^;; ANSWER SECTION:$/{p=1}/^$/{p=0}' 
ns3.google.com. 
ns1.google.com. 
ns4.google.com. 
ns2.google.com. 

的結果相同,但awk的是通過解析ADDITIONAL SECTION,而不是ANSWER SECTION更簡潔:

$ dig google.com ns | awk '/^ns/{print $1}' 
ns1.google.com. 
ns4.google.com. 
ns2.google.com. 
ns3.google.com. 

你想對結果做什麼?

+1

非常感謝你。無論如何,我需要幫助把它放入一個陣列中,但我仍然管理着。 'IFS = $'\ n' nsarray =($(dig google.com ns | awk'p {print $ 5}/^ ;;答案部分:$/{p = 1}/^ $/{p ='})'' – PatricF 2013-03-07 09:41:20

+0

'nsarray =($(dig + short google.ie ns))''可以和任何最近的'dig'一起使用。 IFS包含'\ n'(或者至少應該),所以除非你知道它已被修改(或者你特別小心),否則不需要設置它。 – 2013-03-07 22:31:13