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

[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


reply via email to

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