[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Operação matemática - AWK
From: |
ldaluz2002 |
Subject: |
Operação matemática - AWK |
Date: |
Thu, 25 Apr 2002 22:01:52 -0000 |
User-agent: |
eGroups-EW/0.82 |
Boa tarde grupo
Preciso fazer um script, aparentemente simples, mas me enrolei quando
preciso fazer a operação.
A proposta é a seguinte. Irei receber um único arquivo e terei
que
deste, fazer dois. ( até aí tudo bem, o grep me foi útil)
só que nos
dois arquivo eu tenho que dividir o conteúdo da coluna 31 pelo
fator
0.9635.
para tal, fiz o seguinte shell
clear
# Verifica se ha arquivo para ser dividido
if [ -f ABI* ]
then
varquivo=`ls|grep -i ABI*`
head -n5 $varquivo > H.csv
tail -13 $varquivo > T.csv
# Separa os dados em dois arquivos ( sem header ou tailer)
#GPR#
#
#GPR
grep ",GPR," $varquivo >> G$varquivo
#
#TC
grep ",TC," $varquivo >> T$varquivo
#
# Cria arquivos de trabalho com header
#
cat H.csv >> GC$varquivo
cat H.csv >> TC$varquivo
chmod 777 *.csv
####
# Trata GPR
a=`echo G$varquivo`
awk 'BEGIN { FS = "," }
######SEPARA AS PRIMEIRAS 30 COLUNAS
b=","$1","$2","$3","$4","$5","$6","$7","$8","$9","$10","$11","$12","$1
3","$14","$15","$16","$17","$18","$19","$20","$21","$22","$23","$24","
$25","$26","$27","$28","$29","$30","
#######SEPARA AS COLUNA APOS A TRIGÉSSIMA PRIMEIRA
c=","$32","$33","$34","$35","$36","$37","$38","$39","$40
### FAZ A OPERAÇAO NA COLUNA TRIGESSIMA PRIMEIRA
{ $31 = $31 / 0.9635 }
#### Grava resultado em novo arquivo com cabecalho
{ printf b"%5.10f",$31c }' $a >> GC$varquivo
cat T.csv >> GC$varquivo
done
# Apaga arquivo de trabalho da GPR
rm G$varquivo
#################################
#Trata TC
a=`echo T$varquivo `
awk 'BEGIN { FS = "," }
b=","$1","$2","$3","$4","$5","$6","$7","$8","$9","$10","$11","$12","$1
3","$14","$15","$16","$17","$18","$19","$20","$21","$22","$23","$24","
$25","$26","$27","$28","$29","$30","
c=","$32","$33","$34","$35","$36","$37","$38","$39","$40
{ $31 = $31 / 0.9635 }
{ printf b"%5.10f",$31c }' $a >> TC$varquivo
done
# Apaga arquivo de trabalho da TC
rm T$varquivo
#
# Coloca Tailer nos arquivos
cat T.csv >> GC$varquivo
cat T.csv >> TC$varquivo
#Apaga temporários
rm T.csv
rm H.csv
# proteção do arquivo origem
compress $varquivo
else
echo Não ha arquivo no diretorio com a nomenclatura exigida.
Processo cancelado
echo " "
echo "Pressione qualquer tecla"
read vtecla
fi
Caso alguém queira o arquivo para ilustrar melhor meu problema.
Agradeço qualquer ajuda
Att.
LdaLuz
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Operação matemática - AWK,
ldaluz2002 <=