Диапазон портов grep regex от netstat

В моем выходе netstat я хочу извлечь диапазон портов между 32000-64000 . Я пробовал egrep "^[3,4,5,6]" но мне нужно начать с 32000 . Должен ли я использовать awk или какой-то скрипт?

 Linux# netstat -nau Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 10.0.0.20:55238 0.0.0.0:* udp 0 0 10.0.0.20:55240 0.0.0.0:* udp 0 0 10.0.0.20:31242 0.0.0.0:* udp 0 0 10.0.0.20:55244 0.0.0.0:* udp 0 0 10.0.0.20:32246 0.0.0.0:* udp 0 0 10.0.0.20:55248 0.0.0.0:* udp 0 0 10.0.0.20:12250 0.0.0.0:* udp 0 0 10.0.0.20:19252 0.0.0.0:* 

2 Solutions collect form web for “Диапазон портов grep regex от netstat”

Решение awk :

 netstat -nau | awk -F'[[:space:]]+|:' 'NR>2 && $5>=32000 && $5<=64000' 

Результат в вашем случае будет таким:

 udp 0 0 10.0.0.20:55238 0.0.0.0:* udp 0 0 10.0.0.20:55240 0.0.0.0:* udp 0 0 10.0.0.20:55244 0.0.0.0:* udp 0 0 10.0.0.20:32246 0.0.0.0:* udp 0 0 10.0.0.20:55248 0.0.0.0:* 

  • -F'[[:space:]]+|:' – разделитель полей

  • NR>2 && $5>=32000 && $5<=64000 – проверяет, находится ли номер порта в необходимом диапазоне


Альтернативное решение egrep :

 netstat -nau | egrep ':(3[2-9]|[45][0-9])[0-9]{3}|6[0-3][0-9]{3}|64000' 
  • (3[2-9]|[45][0-9])[0-9]{3} – будет охватывать номера от 32000 до 59999

  • 6[0-3][0-9]{3}|64000 – будет охватывать номера от 60000 до 64000

Поскольку netstat устарел, почему бы не попробовать его преемника, ss .

 ss -nau '( sport >= 32000 and sport <= 64000 )' 
  • Как извлечь конкретное поле из строк из файла на основе соответствия последующих строк
  • Собирать информацию об использовании работы в кластере
  • Как удалить несколько строк в каждом вхождении в файл?
  • grep для нескольких строк в файлах, а затем список файлов в порядке размера
  • Как найти файл с использованием нескольких шаблонов
  • Как вы соответствуете строке, которая начинается с специального символа с помощью grep?
  • Почему grep не работает с перенаправлением?
  • Соответствовать регулярному выражению между разделителями
  • grep для конкретного процесса в ps, но не для самой команды grep
  • Извлечь данные из строки и добавить к линии?
  • условная окраска в grep
  • Linux и Unix - лучшая ОС в мире.