multiplas chamadas

1. multiplas chamadas

Tio Onofre
tionofre

(usa Outra)

Enviado em 29/01/2009 - 14:40h

Amigos,

Com o programa estat.awk abaixo, eu pretendo imprimir do primeiro campo ($1) de um arquivo texto:
* nome do arquivo de entrada;
* o menor valor;
* maior valor e
* a media aritmética.

## ---------------------------------------------------------------
BEGIN {
big = 2147483647
min = + big
max = - big
}
{
if($1<min) min=$1
if($1>max) max=$1
med += $1
}
END {
printf "%s \t %d \t %d \t %.2f\n", FILENAME, min, max, med/NR)
}
## ---------------------------------------------------------------

Como podem perceber, isso eu consegui, porém como eu tenho quase 200 arquivos de entrada, eu pretendo que a chamada dos mesmos seja automática. Usarei um exemplo com apenas 3 aquivos, cujo nome serão: recorreco.txt, bolao.txt e azeitona.txt.

Se eu os chamar isoladamente:

awk –f estat.awk recorreco.txt > saída
awk –f estat.awk bolao.txt >> saida
awk –f estat.awk azeitona.txt >> saida

eu consigo o resultado direcionando-o para o arquivo saida, mas o ideal é que eu grave somente o nome deles num arquivo de entrada, que chamarei de arqbase:

ls –l *txt | awk ‘{print $8}’ > arqbase

cujo conteúdo ficará:
azeitona.txt
bolao.txt
recorreco.txt

Minha dúvida cruel é: Como eu faço para, a partir do arquivo arqbase, chamar o estat.awk para cada um dos arquivos contidos nele???

Desde já eu agradeço o precioso auxílio de vocês.

Um abraço,

Tionofre



  


2. Re: multiplas chamadas

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 31/01/2009 - 02:08h

Tente assim:

$ ls *.txt > arqbase
$ awk -f estat.awk >> saida <<< eval `cat arqbase`


3. Re: multiplas chamadas

Tio Onofre
tionofre

(usa Outra)

Enviado em 04/02/2009 - 17:53h

SMarcell,

Agradeço imensamente o seu auxilio, mas infelizmente ao realizar o que você solicitou, encontrei a seguinte mensagem:

estat.awk:6: fatal: impossivel abrir arquivo 'cat arqbase' para leitura (Arquivo ou diretorio inexistente)

e meus conhecimentos AINDA são bastantes limitados.

Um abraço.


4. Use crases

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 05/02/2009 - 02:50h

------------
estat.awk:6: fatal: impossivel abrir arquivo 'cat arqbase' para leitura (Arquivo ou diretorio inexistente)
------------

O erro ocorreu pelo fato de você utilizar aspas simples ao invés de crases!

Correto = `cat arqbase` (usando crases)


5. resolvido

Tio Onofre
tionofre

(usa Outra)

Enviado em 09/02/2009 - 13:45h

melhor resposta






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts