[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: |
Flavio Junior |
Subject: |
Re: [shell-script] Como contar linhas não repetidas num arquivo de log? |
Date: |
Sat, 8 Mar 2008 15:01:34 -0300 |
Hmm...
$ awk '{print $NF}' | sort -u | wc -l
tambem deve funcionar..
Nao da pra testar agora,
Flavio do Carmo Junior
#bash-br @ irc.freenode.net - Canal de IRC sobre bash script.... participem
;)
2008/3/8 Alain M. <address@hidden>:
> Oi Adriano,
>
> Eu não vou te dar o código, mas gostaria de explicar uma coisa:
>
> O grande segredo em shell script, é fazer as coisas por partes:
>
> 1) Elimine o que não interessa: use o cut
> 2) Elimine os repetidos: use o sort com opção unique
> 3) Agora é só contar o que sobrou: use o wc
>
> Vai fazendo um comando provez, no final cabe tudo em uma linha:
>
> cat lista.txt | cut -d ' ' -f 5 | sort --unique | wc -l
>
> OBS: não ficou muito elegante o comando cut, o motivo é que tem 2
> espaços seguidos. Talvez alguém possa dar uma dica de como usar
> multiplos espaços como delimitador...
>
> Alain
>
> bossonaroesao06 escreveu:
>
> > 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
> >
> >
> >
> > ----------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de programação,
> como perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> > ----------------------------------------------------------
> > Sair da lista: address@hidden<shell-script-unsubscribe%40yahoogrupos.com.br>
> > ----------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> > ----------------------------------------------------------
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >
> >
> > Links do Yahoo! Grupos
> >
> >
> >
> >
>
>
[As partes desta mensagem que não continham texto foram removidas]