Organizando o grep com quebras de linha

1

Como posso adicionar quebras de linha entre o meu egrep?

# nmap -sP 192.168.1.0/24 | egrep 'MAC|report'

Eu gostaria de adicionar um quebra de linha após cada uma das duas linhas. Qual é a taquigrafia mais eficiente?

Essencialmente, gostaria que o resultado fosse produzido assim:

Nmap scan report for 192.168.1.7
MAC Address: C4:42:02:xx:xx:xx (Samsung Electronics Co.)

Nmap scan report for 192.168.1.8
MAC Address: 04:F1:3E:xx:xx:xx (Apple)

Nmap scan report for 192.168.1.10
MAC Address: 70:18:8B:xx:xx:xx (Hon Hai Precision Ind. Co.)
    
por Benny 09.10.2017 / 04:05

2 respostas

2

I would like to add a linebreak after each of the two lines.

A solução para esse problema literal é aqui . No seu caso:

nmap -sP 192.168.1.0/24 | egrep 'MAC|report' | sed '0~2 s/$/\n/g'

No entanto, eu vi nmap outputs onde alguns relatórios perdem sua MAC line, então (ao invés de contar cegamente as linhas) você prefere querer uma nova linha antes de cada Nmap , a menos que seja na primeira linha :

nmap -sP 192.168.1.0/24 | egrep 'MAC|report' | sed '1! s/^Nmap/\nNmap/'
    
por 09.10.2017 / 07:38
0

Eu inventei

nmap -sP 192.168.10/24 | egrep 'MAC|report|Host is up' | sed  '/Host is/c\r'

Isso procura a string adicional "Host está ativo" e a substitui por um retorno de carro.

Isso resulta na seguinte saída:

Nmap scan report for 192.168.1.1

MAC Address: 00:0E:C6:C7:93:38 (Asix Electronics)
Nmap scan report for  (192.168.1.254)

MAC Address: 1C:C1:DE:80:53:55 (Hewlett Packard)
Nmap scan report for 192.168.1.250
    
por 09.10.2017 / 05:03