¿Por qué este comando no ordena según el recuento único?

¿Por qué este comando no ordena según el recuento único?

Tengo líneas en un registro similar a:

2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.11:61618) is not a trusted source.
2015/11/02-07:55:40.515 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.11:51836) is not a trusted source.
2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.10:61615) is not a trusted source.
2015/11/02-07:55:40.515 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.10:51876) is not a trusted source.
2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.10:61614) is not a trusted source.
2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.15:61614) is not a trusted source.
2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.15:61618) is not a trusted source.
2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.15:61613) is not a trusted source.

Entonces, probé el siguiente comando para obtener el recuento de cada IP única, ordenada:

grep ERR_AUTHORIZATION_REQUIRED file.log | awk '{print $6}' | cut -s -d ':' -f1 | tr -d '(' | sort | uniq -c

Sin embargo, el resultado que obtengo es similar al siguiente:

3 10.10.10.10
2 10.10.10.11
3 10.10.10.15

Entonces es como si la IP se ordenara antes de aplicar uniq -c(lo cual tiene sentido dado el comando), pero si cambio los comandos uniqy sort, cada IP se imprime con un recuento de 1.

Respuesta1

Desde la uniqpágina de manual:

DESCRIPTION
     Discard all but one of successive identical lines from INPUT (or standard input), writing to OUTPUT (or standard output).

Aquí la palabra crítica es "sucesiva". No busca duplicados en ningún punto de la secuencia, sólo aquellos que siguen inmediatamente. La clasificación obliga a que todos los duplicados estén uno al lado del otro, para que puedan eliminarse (y contarse).

información relacionada