Tiago essa solução realmente resolveu o meu problema, muito obrigado.

Mas se alguem souber como se faz isso em AWK gostaria de ver para 
aprender mais.

A proposito.....como  faco para testar linha a linha de um arq de log.

exemplo:
logx.log
erro1
erro2
erro3
erron


se for erro1 faço tal coisa
se for erro2 mando email
se for erro3 faço outra coisa

Obrigadão

Michel

Tiago Barcellos Peczenyj escreveu:
>
> Michel
>
> experimente fazer isto:
>
> $ uniq -cd arquivo.log
>
> Talvez seja o que vc procura: o comando uniq pode remover linhas 
> duplicadas
> de um arquivo (se este estiver ordenado). as opções c são para contar e d
> para imprimir *apenas* as linhas duplicadas.
>
> se o arquivo nao estiver ordenado, sort nele!
>
> $ sort arquivo.log | uniq -cd
>
> provavelmente sera mais rapido do que awk + sed, porem quem sabe...
>
> []´s Tiago
>
> On 6/25/07, Michel I. Moreira <[EMAIL PROTECTED] 
> <mailto:michelmoreira%40gmail.com>> wrote:
> >
> > Boa tarde pessoal,
> >
> > Estou tentando fazer um script, que pegue todos os elementos repetidos
> > de um log, e conte cada um deles, e apresente na tela o elemento e
> > total de vezes que cada aparece. Tentei algo do tipo
> >
> > #!/bin/bash
> > cat log.log |awk '{A=NR-1 if (NR > 1) if ($1 = $A) cont++; print $1 "
> > total é " $cont }'
> >
> > Não esta rodando. A logica é:
> >
> > se a linha for > que 1
> > se linhaAtual = linhaAnterior
> > cont ++
> > imprimir Elemento
> > imprimir total do elemento
> >
> > Só não sei implementar isso em AWK ou Shell
> >
> > Alguma idéia???
> >
> > Vlws
> >
> > Michel
> >
> >
> >
>
> -- 
> Tiago B Peczenyj
> Linux User #405772
>
> http://peczenyj.blogspot.com/ <http://peczenyj.blogspot.com/>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  

Responder a