Bash Script: подсчет уникальных строк в файле

Ситуация:

У меня есть большой файл (миллионы строк), содержащий IP-адреса и порты из нескольких часов захвата сети, один IP / порт на линию. Линии имеют этот формат:

ip.ad.dre.ss[:port]
Желаемый результат:

Существует запись для каждого пакета, который я получил во время регистрации, поэтому существует много дублирующих адресов. Я хотел бы иметь возможность запустить это через какой-то сценарий оболочки, который сможет уменьшить его до строк формата

ip.ad.dre.ss[:port] count

гдеcount количество вхождений этого конкретного адреса (и порта). Никакой специальной работы не требуется, обрабатывайте разные порты как разные адреса.

Пока что я использую эту команду для очистки всех IP-адресов из файла журнала:

grep -o -E [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+(:[0-9]+)? ip_traffic-1.log > ips.txt

Исходя из этого, я могу использовать довольно простое регулярное выражение, чтобы вычистить все IP-адреса, которые были отправлены моим адресом (который меня не волнует)

Затем я могу использовать следующее для извлечения уникальных записей:

sort -u ips.txt > intermediate.txt

Я не знаю, как я могу агрегировать подсчеты строк с помощью сортировки.

Ответы на вопрос(1)

Ваш ответ на вопрос