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