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] > >
