Bash Script: cuenta las líneas únicas en el archivo

Situación:

Tengo un archivo grande (millones de líneas) que contiene direcciones IP y puertos de una captura de red de varias horas, una ip / puerto por línea. Las líneas son de este formato:

ip.ad.dre.ss[:port]
Resultado deseado:

Hay una entrada para cada paquete que recibí durante el registro, por lo que hay muchas direcciones duplicadas. Me gustaría poder ejecutar esto a través de un script de shell de algún tipo que será capaz de reducirlo a líneas del formato

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

dóndecount es el número de apariciones de esa dirección específica (y puerto). No hay que hacer ningún trabajo especial, tratar los diferentes puertos como direcciones diferentes.

Hasta ahora, estoy usando este comando para raspar todas las direcciones IP del archivo de registro:

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

A partir de eso, puedo usar una expresión regular bastante simple para eliminar todas las direcciones IP que me enviaron (lo que no me importa)

Entonces puedo usar lo siguiente para extraer las entradas únicas:

sort -u ips.txt > intermediate.txt

No sé cómo puedo agregar los recuentos de líneas de alguna manera con ordenación.

Respuestas a la pregunta(1)

Su respuesta a la pregunta