LinuxForum.Fans
Тема

Нужен совет в sed

Автор: prostornet 5 сообщений 3347 просмотров
#372058

есть вывод nmap -sP

text

Nmap scan report for as-r3.localdomain.ru (10.20.7.34)
Host is up (0.00055s latency).
Nmap scan report for localhost.localdomain.ru (10.20.7.37)
Host is up (0.00055s latency).
Nmap scan report for 10.20.7.53
Host is up (0.00069s latency).
Nmap scan report for msk-s1.localdomain.ru (10.20.7.55)

но хочется на выводе получать только список ip адресов, оформил следующим образом:

NET=$1
/usr/bin/nmap -sP ${NET}/24 | grep -i 'scan report' | sed -r 's/(.*)[ ]([\(\)0-9.]+)/\2/'

но вывод не идеален:

text

(10.20.7.115)
10.20.7.116
(10.20.7.117)
(10.20.7.118)

Вопрос: как переоформить sed , что бы и скобки убрать?

#372059

facepalm
[console]$ echo "Nmap scan report for as-r3.localdomain.ru (10.20.7.34)
Host is up (0.00055s latency).
Nmap scan report for localhost.localdomain.ru (10.20.7.37)
Host is up (0.00055s latency).
Nmap scan report for 10.20.7.53
Host is up (0.00069s latency).
Nmap scan report for msk-s1.localdomain.ru (10.20.7.55)
"|sed -rn 's/.*[^0-9](([0-9]+\.){3}[0-9]+).*/\1/p'
10.20.7.34
10.20.7.37
10.20.7.53
10.20.7.55

[/console]

#372060

Спасибо.
Но не совсем понятна опция -n?


P.S.:
Я так правильно понимаю что: ([0-9]+\.){3} - несколько цифр оканчивающихся точкой и повторяющихся три раза?

#372063

prostornet,
1. http://emulek.github.io/sed/

2.

"prostornet" написал:
Но не совсем понятна опция -n?

не печатать всякий мусор. У вас там параллельно grep запускается для этого.

3.

"prostornet" написал:
Я так правильно понимаю что: ([0-9]+\.){3} - несколько цифр оканчивающихся точкой и повторяющихся три раза?

да.

#379200
text
nmap -sP -n -oG - ${NET}/24 | awk '{print $2}'
Войдите или зарегистрируйтесь, чтобы ответить.