Filtragem de logs

1. Filtragem de logs

Thiago Siqueira
t.siqueira

(usa BackTrack)

Enviado em 10/06/2011 - 01:47h

Estou tentando faz 3 dias e sou iniciante em shell. Segue o que estou tentando fazer:

- O objetivo do script é ao digitar tal número, ele passar a filtrar daquele número até o final dele (ex: se digitei 1000, filtrar até o número que tiver no arquivo, como ex 4000).

Essa filtragem precisar ser feita em um arquivo com a seguinte estrutura de logs como ex:

-------ola,1000,"ola"
-------oi,10,"oi"
-------hello,7000,"hello"
-------hello,1,"hello"

Neste caso filtrar apenas os números, e a partir daí salvá-lo.
Ex: No exemplo acima, gostaría de ter um script que ao digitar o número inicial "10" ele passa a imprimir até o 7000.

Parei nessa parte rs:

$ dados=$(cut -d, -f2 teste.txt | sort | uniq -c | sort -n | tac | awk '{print $2}')
$ echo $dados | fold -s -w 4
7000
1000
10
1

ATENÇÃO: O objetivo desse script é exatamente buscar do valor x até y e em seguida gravar toda a linha do log em um arquivo a parte.

Então se pesquisei de 1000 à 7000, salvar todas as linhas de logs:

-------ola,1000,"ola"
-------hello,7000,"hello"



  


2. Re: Filtragem de logs

Perfil removido
removido

(usa Nenhuma)

Enviado em 10/06/2011 - 03:50h

Os campos de cada registro de log são definidos por virgulas e o segundo campo é sempre numérico???

Desculpe minha ignorância: não me ficou claro o que você quer. Talvez por isso não estais conseguindo sucesso em seu script e quem sabe ficará dificil conseguir alguma ajuda.

Mas seguem tentativas:

grep -A 2 $1 log.log >> destino.txt

Só os números:
grep -A 2 $1 log.log | cut -d ',' -f 2 >> destino.txt



3. Re: Filtragem de logs

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 10/06/2011 - 15:42h

se eu entendi bem voce quer digitar ... ./seu_script.sh 1000 7000 e ele retornar:

-------ola,1000,"ola"
-------hello,7000,"hello"

É isso? Se for tenta isso:

cat teste.txt | while read line
do
numero=`echo $line | cut -d, -f2`
if [ "$numero" -ge "$1" -a "$numero" -le "$2" ];then
echo $line >> arquivo_de_saida.txt
fi
done








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts