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

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

Re: problema para abrir arquivo para filtragem em awk


From: edmarssouza
Subject: Re: problema para abrir arquivo para filtragem em awk
Date: Fri, 23 Jan 2009 14:01:21 -0000
User-agent: eGroups-EW/0.82

--- Em address@hidden, jimmy <ronaldo_tgz@...> 
escreveu
>
> On Thu, Jan 22, 2009 at 08:40:34PM -0000, edmarssouza wrote:
> > Ei ai pessoal, tudo bem?
> > Espero que sim.
> > Estou com um problema e peço a contribuição de todos na medida do 
> > possível.
> > É o seguinte, estou começando a programar em awk, sei que a lista 
não 
> > serve
> > a esse fim, mais sei que vocês são humilde para entender uma 
> > dificuldade.
> > O problema é o seguinte, no shell eu usava a simples sintaxe para 
> > filtrar o
> > /proc/meminfo:
> > 
> > awk 'BEGIN {FS=":"} /MemTotal/ {print $2}' /proc/meminfo
> >                 e
> > awk 'BEGIN {FS=":"} /model name/ {print $2}' /proc/cpuinfo
> > 
> > só que como estou querendo programar apartir de um arquivo awk 
sem 
> > usar o shell,
> > não estou conseguindo usar o awk para ler esses arquivos. Sei que 
tem 
> > um
> > jeito com um tal de getline. A pergunta é: O que é o getline no 
awk e 
> > como
> > usá-lo para filtrar os dois arquivos acima, de dentro de um 
script 
> > awk, sem
> > usar a função system()?
> > 
> > Desde já meu muito obrigado pela atenção de todos, ai julio se 
> > possivel contribui
> > ai, pois sei que de awk e shell você é fera. Obrigado pessoal, 
até 
> > mais.
> > 
> > Obs: Eu li o manual do gawk mais meu inglês não é dos melhores, 
assim 
> > sendo
> > não pude tira muito proveito.
> > 
> > 
> > ------------------------------------
> 
> saudações edmar,
> 
> sem usar o shell em momento algum dentro do script a única forma que
> conheço é a seguinte:
> 
> #!/usr/bin/awk -f
> 
> BEGIN {
>   while((getline line < "/proc/meminfo") > 0) {
>     if(line ~ /MemTotal/) {
>       split(line,l,/ +/);
>       print l[2],l[3]
>     }
>   }
> }
> 
> na linha do "getline", o while irá armazenar cada linha do arquivo
> "/proc/meminfo" dentro da variável "line" enquanto o retorno da 
função
> for maior que zero, ou seja, enquanto ele puder ler o arquivo.
> 
> espero que esse simples script lhe sirva de exemplo.
> 
> uma observação é que estou usando o gnu awk (gawk), e como há várias
> implementações diferentes dessa linguagem, não sei se esse código
> funcionaria em outro interpretador.
>

E ai jimmy meu velho, obrigadão era isso mesmo, esse getline está me 
dando uma surra. Tava difícil. E é um bom exemplo sim, é uma 
catastrofe encontra apostila, artigo ou tutorial de awk em português. 
Espero que algum dia eu possa retribui o favor. Agradeço mesmo de 
coração. Vou testar aqui filtrando os dois ou mais arquivos ao mesmo 
tempo no script awk...rsrsrs. Valeu. muito obrigado. Até mais!




reply via email to

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