[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Filtro de log com AWK
From: |
shelleiro |
Subject: |
Filtro de log com AWK |
Date: |
Mon, 20 May 2013 21:16:34 -0000 |
User-agent: |
eGroups-EW/0.82 |
Pessoal,
Segue ai minha duvida, utilizando o awk consigo isolar uma algumas linhas do
log e somar um determinado campo, só que consigo somente pegar o mês inteiro do
log, gostaria de pegar apenas parte de um mês até uma certa data do outro,
segue exemplo :
Dia base : DB=18
Mês base : MB=05
Mês anterios : MA=`echo "${MB}" | awk 'MANT = $1 - 1 {printf "%02o", MANT}'`
Ano base : AB=2013
Linha Bse : LB="310001#"
Comando AWK :
awk -v LINHA="${LB}" -v BASE="${DB}" -v MES="${MB}" -v ANT="${MA}" -v
ANO="${AB}" -F, '
$12 ~ ANO"-"ANT"-" && $3 ~ LINHA {print $0} ;
$12 ~ ANO"-"MES"-" && $3 ~ LINHA {print $0}' arquivo.log >arquivo_tmp.log
Desta forma tenho todos os dias do mês no arquivo temporário mas não estou
conseguindo pegar apenas o período do dia 21 do mês anterior até o dia 20 do
mês atual, segue exemplo da linha do log :
"","20711490","310001#557132110444","portaone","""20711490""
<20711490>","SIP/portatwo-0001326c","DGV/2","Hangup","","2013-04-01
12:38:58",,"2013-04-01
12:39:00",2,0,"BUSY","DOCUMENTATION","1364819938.160106",""
Segue separado por campo abaixo para melhor compreensão :
1 ""
2 "20711490"
3 "310001#557132110444"
4 "portaone"
5 """20711490"" <20711490>"
6 "SIP/portatwo-0001326c"
7 "DGV/2"
8 "Hangup"
9 ""
10 "2013-04-01 12:38:58"
11
12 "2013-04-01 12:39:00"
13 2
14 0
15 "BUSY"
16 "DOCUMENTATION"
17 "1364819938.160106"
18 ""
Observe que o campo que utilizo para a busca o de número 12 tem duas
informações separadas por espaço a data e a hora, ai está minha dificuldade, já
tentei com o Sub, Split mas não cheguei ao resultado que queria, apenas as
linhas de determinado período e uma determinada linha, se fosse para pegar todo
período dos dois meses já estaria pronto, mas tenho a necessidade de pegar uma
faixa de dias específicos a partir do meio do mês :-(
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Filtro de log com AWK,
shelleiro <=