Более эффективный способ сортировки результата команды netstat

Я пытался отсортировать только IP-адреса, не связанные с Firefox, и записать их в файл. Я закончил с этой командной строкой, сделал работу, но мне интересно, есть ли способ сделать лучше.

netstat -antp | grep -E ?:80 | grep -v firefox > ipadress.txt &&  awk '{print $5}' ipadress.txt > ipadress1.txt

И есть ли способ получить более чистый вывод, удалив порт:80? Я использовал ipadress1.txt потому что когда я пытался перезаписать это не работает.

1 ответ

Решение

Делать awk сделать всю работу:

$ netstat -antp | awk '/:80/ && !/\/firefox/{print $5}'                                                           
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
151.101.129.69:80
67.132.183.24:80
91.189.89.144:80
151.101.129.69:80
:::*

объяснение

типичный awk Программа построена так:

/pattern/ {code to run if pattern matched}

В этом конкретном случае мы используем две модели: мы ищем :80 строки и строки, которые не имеют /firefox в них. && логическое И, что означает совпадение обоих шаблонов слева и справа. Если у нас есть совпадение для такой строки - выполните кодовый блок, который печатает только 5-е поле.

Другие вопросы по тегам