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

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

Re: [shell-script] Uso de variáveis no awk


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Uso de variáveis no awk
Date: Thu, 3 Jan 2008 12:14:53 -0200

No gawk:

$ export var
$ gawk '{x = environ["var"]
...
}'

On 1/3/08, Julio C. Neves <address@hidden> wrote:
> Fala Cristiano,
> me parece que vc quer usar uma variável do Shell dentro de um programa awk.
> Se for isso existem duas formas (que eu conheça!...).
> - Expor a variável ao shell para que ele as substitua.
> $ awk 'BEGIN { print sprintf("%.8f", '$A'/'$B' ) }'
> Repare que eu abri e fechei aspas simples de forma que as 2 variáveis
> ficassem expostas ao shell
>
> - Chamando o awk passando as variáveis como parâmetros e internamente ao
> programa pegar seus valores com argc e argv.
>
> Abraços,
> Julio
>
>
>
> Em 02/01/08, Cristiano Ferrari <address@hidden> escreveu:
> >
> >   Salve lista, feliz ano novo!
> >
> > Colegas, tenho dúvidas à respeito do uso de variáveis com o awk em um
> > script.
> >
> > Por exemplo, eu gostaria de fazer uma conta usando 2 variáveis e
> > formatar a saída com a função sprintf(). Supondo que eu não usasse
> > variáveis, eu faria assim:
> >
> > awk 'BEGIN { print sprintf("%.8f", 1/3 ) }'
> >
> > Entretanto, preciso usar as variáveis A e B, ao invés de 1 e 3, mas se
> > eu usar aspas simples para passar o código ao awk, o bash não
> > interpreta as variáveis:
> >
> > $ awk 'BEGIN { print sprintf("%.8f", $A/$B ) }'
> > awk: fatal: tentativa de divisão por zero
> >
> > Se eu usar aspas duplas, a interpretação das várias é correta, mas o
> > parâmetro "%.8f" é passado intepretado também:
> >
> > $ awk "BEGIN { print sprintf("%.8f", $A/$B ) }"
> > awk: BEGIN { print sprintf(%.8f, 1/3 ) }
> > awk: ^ syntax error
> > awk: erro fatal: erro interno
> > Abortado
> >
> > Podem me ajudar a resolver isso?
> >
> > Abraço
> >
> > Cristiano Ferrari
> >
> >
> >
>
>
>
> --
> Abraços,
> Julio
> Feliz Natal
> :wq
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>


-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"


reply via email to

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