[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Como contar linhas não repetidas num arquivo de log?
From: |
Tiago Barcellos Peczenyj |
Subject: |
Re: [shell-script] Como contar linhas não repetidas num arquivo de log? |
Date: |
Sat, 8 Mar 2008 08:59:30 -0300 |
Facil se vc utilizar arrays associativos do awk
$ awk '{ nomes[$NF]++ }
END{ print "qtde de usuarios: "length(nomes)
for (i in nomes) print i }' arquivo.log
qtde de usuarios: 4
renato
marcos
adriano
andre
se quiser quantas vezes cada nome aparece, imprima nomes[i] também
[]´s T
2008/3/8 bossonaroesao06 <address@hidden>:
>
>
>
>
>
>
> Bom dia...
>
> Tenho um arquivo de log no seguinte formato:
>
> 1ªcoluna: DATA/HORA (nesse formato maluco aí)
> 2ªcoluna: IP
> 3ªcoluna: USER
>
> Exemplo:
> #======================================#
> 1204883891.466 192.168.10.76 andre
> 1204883891.467 192.168.10.71 andre
> 1204883891.468 192.168.10.26 marcos
> 1204883891.469 192.168.10.11 renato
> 1204883891.469 192.168.10.76 andre
> 1204883891.470 192.168.10.71 andre
> 1204884017.599 192.168.10.26 adriano
> 1204884233.373 192.168.10.11 renato
> #======================================#
>
> Eu gostaria de saber o número de usuários nesse log sem repetir.
>
> No exemplo acima tenho os usuários na terceira coluna mas eu não
> posso simplesmente contar as linhas pois eles se repetem.
>
> Eu gostaria de fazer um script para contar esses usuários no arquivo
> de log de forma que a resposta para o exemplo acima fosse 04 (
> andre, marcos, renato, adriano) sem repetir as ocorrências de cada
> um deles.
>
> Alguem poderia me ajudar?
> Obrigado pela atenção
> Adriano
>
>
--
Tiago B Peczenyj
Linux User #405772
http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"