Bash Script: zlicza unikalne linie w pliku

Sytuacja:

Mam duży plik (miliony linii) zawierający adresy IP i porty z kilkugodzinnego przechwytywania sieci, jeden IP / port na linię. Linie mają ten format:

ip.ad.dre.ss[:port]
Pożądany rezultat:

Istnieje wpis dla każdego pakietu, który otrzymałem podczas logowania, więc istnieje wiele duplikatów adresów. Chciałbym móc to uruchomić za pomocą jakiegoś skryptu powłoki, który będzie w stanie zredukować go do linii formatu

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

gdziecount to liczba wystąpień tego konkretnego adresu (i portu). Nie trzeba wykonywać żadnych specjalnych prac, traktować różne porty jako różne adresy.

Do tej pory używam tego polecenia, aby zeskanować wszystkie adresy IP z pliku dziennika:

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

Na tej podstawie mogę użyć dość prostego wyrażenia regularnego, aby usunąć wszystkie adresy IP wysłane przez mój adres (na czym mi nie zależy)

Następnie mogę użyć następujących elementów, aby wyodrębnić unikalne wpisy:

sort -u ips.txt > intermediate.txt

Nie wiem, jak w jakiś sposób mogę zsumować liczby linii z sortowaniem.

questionAnswers(1)

yourAnswerToTheQuestion