shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Problemas com Script


From: Julio C. Neves
Subject: Re: [shell-script] Problemas com Script
Date: Fri, 13 Jul 2007 10:14:46 -0300

Fala Tiago e pessoal,
não tenho certeza, mas creio que o ENVIRON é do gawk. Acho que no Unix ou vc
expõe as variáveis à resolução do Shell, como fizemos no esclarecimento da
dúvida do Michel, ou vc precisa fazer uma passagem de parâmetro, de forma
indêntica ao C, isto é, usando a famosa dupla sertaneja ARGC e ARGV.

Se alguém puder confirmar agradeço. Abração,
Julio
:wq


Em 13/07/07, Tiago Barcellos Peczenyj <address@hidden> escreveu:
>
>   Tu também podes passar para dentro do awk tanto via -v como eu fiz como
> via
> array ENVIRON, tche!
>
> TESTE=xxx
> $ awk 'BEGIN{ print ENVIRON["TESTE"] }'
>
> $ export TESTE
> $ awk 'BEGIN{ print ENVIRON["TESTE"] }'
> xxx
>
> Vc precisa exportar a variavel para funcionar, pois o awk é executado em
> um
> shell filho.
>
> On 7/13/07, Michel I. Moreira <address@hidden<michelmoreira%40gmail.com>>
> wrote:
> >
> > Opsss nem tinha percebido a mancada....
> >
> > Obrigado Julio e Tiago pelas dicas.
> >
> > Abraço a todos
> >
> > Michel
> >
> > Julio C. Neves escreveu:
> > >
> > > Para vc usar variáveis do Shell dentro do awk, vc não pode fazê-lo
> entre
> > > apóstrofos, deve exibi-las para que o shell resolva seus valores. Para
> > > funcionar, faça assim:
> > >
> > > 15 awk '{if ($1 >= '$DAT1' && $1 <= '$DAT2') print $0}' $ARQ_RES2 >
> > > resultado.txt
> > >
> > > Abraços,
> > > Julio
> > > :wq
> > >
> > > Em 12/07/07, Michel I. Moreira <address@hidden<michelmoreira%40gmail.com>
> <michelmoreira%40gmail.com>
>
> > > <mailto:michelmoreira%40gmail.com>> escreveu:
> >
> > > >
> > > > Boa tarde nobres colegas....
> > > >
> > > > Com a ajuda do Tiago e de algumas "googladas" cheguei a esse script
> > > >
> > > > 1 #!/bin/bash
> > > > 2 ARQ_RES='teste.txt'
> > > > 3 ARQ_RES2='teste2.txt'
> > > > 4 ARQ_RES3='teste3.txt'
> > > > 5 ARQ_LOG='XXX.XXX.XXX.XX_YY.log'
> > > > 6 PERC='5'
> > > > 7 cat $ARQ_LOG|awk '{print $1 " " strftime("%d/%m/%Y",$1) " " $2 " "
> > > > $3 " " $4 " " $5}'|sort -rn >$ARQ_RES
> > > > 8 TOTAL=`cat $ARQ_RES|wc -l`
> > > > 9 TPORC=$(($TOTAL*$PERC/100))
> > > > 10 TTAIL=$(($TOTAL-$TPORC))
> > > > 11 tail -n $TTAIL $ARQ_RES > $ARQ_RES2
> > > > 12 head -n $TPORC $ARQ_RES > $ARQ_RES3
> > > > 13 DAT1=`date -d '05/26/2005' +'%s'`
> > > > 14 DAT2=`date -d '05/26/2007' +'%s'`
> > > > 15 awk '{if ($1 >= "$DAT1" && $1 <= "$DAT2") print $0}' $ARQ_RES2
> > > > >resultado.txt
> > > > 16 cat resultado.txt
> > > >
> > > > Ele pega o arquivo de log de um dos meus servidores e verifica uma
> > serie
> > > > de taxas entre duas datas diferentes, o problema é que a instrução
> na
> > > > linha 15 que serviria para verificar isso não funciona. Será algum
> > erro
> > > > de logica da minha parte???
> > > >
> > > > Abaixo segue como o arquivo de log esta formatada apos passar pelo
> > > > script na linha 7.
> > > >
> > > > TimeStamp Data Tx1 Tx2 Tx3 Tx4
> > > >
> > > > 1147910400 17/05/2006 12179 12153 170024 88069
> > > > 1147824000 16/05/2006 12064 12870 108607 115685
> > > > 1147737600 15/05/2006 11187 12280 136655 78502
> > > > 1147651200 14/05/2006 7873 9569 54172 57997
> > > > 1147564800 13/05/2006 3533 4838 44923 32611
> > > > 1147478400 12/05/2006 12115 13982 113932 174692
> > > > 1147392000 11/05/2006 15227 16378 97502 105814
> > > > 1147305600 10/05/2006 13111 14166 95345 83108
> > > > 1147219200 09/05/2006 11674 13130 92191 137556
> > > > 1147132800 08/05/2006 12109 12354 210254 99317
> > > > 1147046400 07/05/2006 3270 3716 30422 33747
> > > > 1146960000 06/05/2006 3710 4198 35379 35185
> > > > 1146873600 05/05/2006 13568 13839 132962 126936
> > > >
> > > > Obrigado,
> > > >
> > > > Michel
> > > >
> > > >
> > > >
> > >
> > > --
> > > Abraços,
> > > Julio
> > > http://www.julioneves.com <http://www.julioneves.com> - Um livro sobre
> > > Bash completo e on-line
> > > :wq
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> >
> >
> >
>
> --
> Tiago B Peczenyj
> Linux User #405772
>
> http://peczenyj.blogspot.com/
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]