Por que esse comando não é classificado com base na contagem uniq?

1

Eu tenho linhas em um log semelhante 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.

Então, eu tentei o seguinte comando para obter a contagem de cada IP uniq, classificado:

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

A saída que recebo é semelhante à seguinte:

3 10.10.10.10
2 10.10.10.11
3 10.10.10.15

Então é como se o IP estivesse sendo classificado antes de aplicar o uniq -c (o que faz sentido dado o comando), mas se eu trocar os comandos uniq e sort , todo IP será impresso com uma contagem de 1 .

    
por MrDuk 02.11.2015 / 18:10

1 resposta

4

Na% man_de% manpage:

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

Aqui, a palavra crítica é "sucessiva". Ele não procura duplicatas em nenhum ponto do fluxo, apenas as que se seguem imediatamente. A ordenação força todos os duplicados próximos uns dos outros, para que possam ser removidos (e contados).

    
por 02.11.2015 / 18:25

Tags