2015-11-23 24 views
0
sudo nmap -sP 192.168.2.0/24 | awk '/Nmap scan report for/{printf $5;}/:/{print " => "$6;}' | sort 

我得到如下:Grepping用於製造

192.168.2.1 => 
192.168.2.10 => 
192.168.2.108 => 
192.168.2.120 => 
192.168.2.124 => 
192.168.2.126 => ITS, 
192.168.2.135 => 
192.168.2.156 => 
192.168.2.158 => Network 
192.168.2.168 => 
192.168.2.17 => 
192.168.2.3 => Computer) 
192.168.2.44 => Co.) 
192.168.2.50 => 
192.168.2.51 => Network 
192.168.2.52 => 
192.168.2.54 => 
192.168.2.57 => Co.) 
192.168.2.58 => 
192.168.2.59 => 
192.168.2.61 => 
192.168.2.65 => Precision 
192.168.2.67 => 
192.168.2.68 => 
192.168.2.71 => 

我所試圖做的是grep和只顯示一個特定的製造,但在這一點上我不能讓整個生產線,以顯示。

的掃描是這樣的:

Nmap scan report for 192.168.2.126 
Host is up (0.00083s latency). 
MAC Address: 30:CD:A7:A8:86:CC (Samsung Electronics ITS, Printer division) 
Nmap scan report for 192.168.2.135 
Host is up (0.00042s latency). 
MAC Address: 00:27:22:E2:16:C2 (Ubiquiti Networks) 
Nmap scan report for 192.168.2.156 
Host is up (0.00019s latency). 
MAC Address: 2C:41:38:A2:74:E9 (Hewlett-Packard Company) 

我使用AWK和打印錯了嗎?

回答

3

awk來拯救!

$ awk '/Nmap/{ip=$NF} 
     /^MAC/{$1=$2=$3=""; print ip " =>" $0}' filename 
    | tr -s ' ' 
192.168.2.126 => (Samsung Electronics ITS, Printer division) 
192.168.2.135 => (Ubiquiti Networks) 
192.168.2.156 => (Hewlett-Packard Company) 

還有很多其他的方法,但也許這是最短的一個。將字段設置爲空字符串會使FS保持原位。因此需要清理tr -s