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

я получаю следующее:для производства оглавлению

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) 

Am I с использованием 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.

Смежные вопросы