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

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

Re: [shell-script] AWK


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] AWK
Date: Thu, 25 Oct 2007 16:21:32 -0200

Fala Julio.

Creio que -v variavel=valor é aceito por todas as implementações de awk
modernas (incluindo gawk, mawk, awk do busybox e o awk do HP-UX), porem na
versão do Unix 7 o awk só tinha a opção -F separador (não lembro de ter
visto o -v no livro de awk do trio aquele, mas acho que ja é um padrão).

O gawk aceita também uma opção chamada --assign que faz a mesma coisa, mas
só ele suporta, pelo visto.

Agora, é possivel fazer

awk 'script' variavel=valor arquivo

porem temos q tomar cuidado, vejam só (gawk e awk do HP-UX)

$ awk -v a=1000 'BEGIN{print a+0}' fxcop.log
1000
$ awk 'END{print a+0}' a=1000 fxcop.log
1000
$ awk 'BEGIN{print a+0}' a=1000 fxcop.log # OPS!!!
0

O william acabou de descobrir isso, mas eu tava confirmando algumas coisas.
Acho que esse resultado do BEGIN tem haver com como o awk trata os
parâmetros, lendo do começo pro fim, mas isso é achismo.

[]´s Tiago

On 10/25/07, Julio C. Neves <address@hidden> wrote:
>
> Fala Tiago,
> somente uma dúvida minha, pq estou sem Unix neste momento. A opção -v é
> válida para o awk do Unix ou é somente do GNU awk.
>
> Estou perguntando isso, pq nunca a conheci e faria o que o Ikami pediu da
> seguinte forma:
>
> awk '$NF >= '$Valor' {print $1,$NF}'
>
> Desta forma a variável esta fora da proteção dos apóstrofos e o shell irá
> substitui-la pelo seu valor antes de executar o awk.
>
> Abração,
> Julio
> Faltam 3 dias para o início do curso
> de Shell Script em SP. Detalhes em:
> www.4linux.com.br - (11)2125-4747
>
> Em 24/10/07, Tiago Barcellos Peczenyj 
> <address@hidden<tiago.peczenyj%40gmail.com>>
> escreveu:
> >
> > simples, use a opção -v variavel=valor
> >
> > awk -v valor=90 '$NF >= valor {print $1, $NF} '
> >
> > []´s T.
> >
> > On 10/24/07, ikami <address@hidden 
> > <ikamig%40yahoo.com.br><ikamig%40yahoo.com.br>> wrote:
> > >
> > > Ola lista.
> > > Pergunta simples. A um tempo atras a lista me ajudou a filtrar um
> aquivo
> > > com awk. Num trecho do comando (onde tem o awk) tenho isto:
> > > awk '$NF >= 90 {print $1,$NF}'
> > > A pergunta eh: Como faço para passar o valor (no caso do exemplo 90)
> por
> > > variável?
> > > Ex:
> > > awk '$NF >= $VALOR {print $1,$NF}'
> > >
> > > ikami
> > >
> > > Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
> > > armazenamento!
> > > http://br.mail.yahoo.com/
> > >
> > > [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]
>
> 
>



-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/


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



reply via email to

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