LinuxForum.Fans
Тема

Парсинг вывода netstat

Автор: u_snif 6 сообщений 5717 просмотров
#1825

Здравствуйте, не так давно начал изучать bash и собственно в данный момент есть задача освоить одну очень важную вещь (для меня это очень важно). Предположим, что я выполняю команду netstat -n --tcp | grep ESTABLISHED соответственно получаю некий вывод типа:

text

tcp        0      0 192.168.1.101:411      ip1:60987    ESTABLISHED
tcp        0  16385 192.168.1.101:53095     ip2:27877      ESTABLISHED
tcp        0      0 192.168.1.101:411       ip3:61395      ESTABLISHED

необходимо вырвать из этой записи строчки типа:

text

ip1
ip2
ip3

и с каждой строкой выполнить действие (ну к примеру записать в файл). Как я понимаю тут нужны регулярные выражения, я работал с ними в PHP (но так и не выучил их), в общем помогите составить такой скрипт. Заранее признателен.

#1957

Ну, чисто интутивно где-то так
netstat -n --tcp | grep ESTABLISHED | awk '{ print $5}' | grep --only-match "ip."

#2683
ystas написал:
Ну, чисто интутивно где-то так
netstat -n --tcp | grep ESTABLISHED | awk '{ print $5}' | grep --only-match "ip."

спасибо конечно но я уже сам додумался)

text

netstat -n --tcp | grep ESTABLISHED | awk '{print $3}' | cut -d: -f1
#2686

Что-то вы совсем намудрили :)
netstat -n --tcp | grep ESTABLISHED | egrep -o 'ip.'

#2695
KS написал:
Что-то вы совсем намудрили :)
netstat -n --tcp | grep ESTABLISHED | egrep -o 'ip.'

однакож работает)

#2696
.snif написал:

однакож работает)

На больших объёмах мой способ быстрее. Думаю, раза так в 2 - 3 :)

Войдите или зарегистрируйтесь, чтобы ответить.