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

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

Re: Formatação de arquivo orientado a colunas (cut)


From: Salvador S. Scardua
Subject: Re: Formatação de arquivo orientado a colunas (cut)
Date: Thu, 11 May 2006 09:39:43 -0300

Bem, aqui vai o arquivo para quem quiser se aventurar, estou testando o awk do 
Fabiano Caixeta Duarte.
-----------------------------------------------------------------------------------------------------
 Mensagem: 10        
     Data: Wed, 10 May 2006 19:16:32 -0300
       De: "Tiago Barcellos Peczenyj" <address@hidden>
  Assunto: Re: Formatação de arquivo orientado a colunas (cut)

Vamos por partes

Onde começa e onde termina uma linha nesse arquivo ?

Quantas linhas tem por 'registro'  ?

On 5/10/06, Salvador S. Scardua <address@hidden> wrote:
>   Estava aguardando ansioso por uma oportunidade de aprender ShellScript, 
> Então que,
> quando eu menos esperava, meu patrão me deu uma tarefa que achei interessante 
> tentar
> utilizar ShellScript, dediquei algum tempo de estudo mas cheguei a um 
> impasse, não
> consigo formatar o arquivo (leia-se novato), o arquivo entrada é este, direto 
> do Mainframe (SCO 5);
>
> -------------------------------------------------------------------------------
> 3.2.3.05.01.004  DEPRECIACOES        31/12/2005 0197         0,00       
> 3.007,08
>                 TRANSF. SALDO ENC. EXERCICIO
>                 DEPRECIACOES        31/12/2005 0231         0,00       
> 3.007,08
>                 TRANSF. SALDO ENC. EXERCICIO
>                 DEPRECIACOES        31/12/2005 0278        77,64           
> 0,00
>                 VR DEPREC.CFE RELAT. 12/2005
> 3.2.3.05.01.005 MULTAS FISCAIS      22/12/2005 0119        95,44           
> 0,00
>                 PG MULTA POR RETIF. DIA/DS
>                 SEFAZ
>                 MULTAS FISCAIS      22/12/2005 0121         0,00         
> 756,00
>                 AV DE CREDITO       REEMB.MULTA REV
>                 ICMS OUTROS LC 22 DO BR LTDA
>                 MULTAS FISCAIS      22/12/2005 0121         0,00      
> 10.800,00
>                 AV DE CREDITO       REEMB.MULTA
>                 ISOLADA ICMS LC 22 VALTRA DO BR
> 3.2.3.05.01.006 OUTRAS DESPESAS NAO 02/12/2005 0009        40,00           
> 0,00
>                 PG MICHELLE REF     FAXINA ESCRIT.
>                 CFE RECIBO
>                 OUTRAS DESPESAS NAO 02/12/2005 0009        40,00           
> 0,00
>                 PG SIDNEI DE J.     SILVA REF
>                 CAFE P/ LOJA CFE RECIBO
>                 OUTRAS DESPESAS NAO 02/12/2005 0009        32,00           
> 0,00
>                 PG OSVALDO REF      FRETE CFE
>                 RECIBO
> -------------------------------------------------------------------------------
>
>   E deve ficar assim (saída);
>
> ---------------------------------------------------------------------------------------------------------------------------------------
> 3.2.3.05.01.004;DEPRECIACOES        31/12/2005 0197 + TRANSF. SALDO ENC. 
> EXERCICIO;0,00;3.007,08
> 3.2.3.05.01.004;DEPRECIACOES        31/12/2005 0231 + TRANSF. SALDO ENC. 
> EXERCICIO;0,00;3.007,08
> 3.2.3.05.01.004;DEPRECIACOES        31/12/2005 0278 + VR DEPREC.CFE RELAT. 
> 12/2005;77,64;0,00
> 3.2.3.05.01.005;MULTAS FISCAIS      22/12/2005 0119 + PG MULTA POR RETIF. 
> DIA/DS + SEFAZ;95,44;0,00
> 3.2.3.05.01.005;MULTAS FISCAIS      22/12/2005 0121 + AV DE CREDITO       
> REEMB.MULTA REV + ICMS OUTROS LC 22 DO BR LTDA;0,00;756,00
> 3.2.3.05.01.005;MULTAS FISCAIS      22/12/2005 0121 + AV DE CREDITO       
> REEMB.MULTA + ISOLADA ICMS LC 22 VALTRA DO BR;0,00;10.800,00
> 3.2.3.05.01.006;OUTRAS DESPESAS NAO 02/12/2005 0009 + PG MICHELLE REF     
> FAXINA ESCRIT. + CFE RECIBO;40,00;0,00
> 3.2.3.05.01.006;OUTRAS DESPESAS NAO 02/12/2005 0009 + PG SIDNEI DE J.     
> SILVA REF + CAFE P/ LOJA CFE RECIBO;40,00;0,00
> 3.2.3.05.01.006;OUTRAS DESPESAS NAO 02/12/2005 0009 + PG OSVALDO REF      
> FRETE CFE + RECIBO;32,00;0,00
> ---------------------------------------------------------------------------------------------------------------------------------------
>
>  Eu ia escrever em outra linguagem a solução, inclusive já havia até escrito 
> o algoritmo (reescrevi em uma espécie de
> algol+shell), dêem uma olhada;
>
>     ####################################################################
>     ######## LOOP PARA PERCORRER TODO ARQUIVO, LINHA A LINHA    ########
>     ####################################################################
>
>
>     if [[ `cut -c15` = [:digit:] ]]     # Conteúdo da coluna 15 é um dígito?
>     then
>        $conta=`cut -c-15`               # SIM, variável conta recebe Conteúdo 
> do primeiro campo
>
>     ####################################################################
>     ######## LOOP PARA CAPTURAR TODO CONTEÚDO DA COLUNA DETALHES #######
>     ######## Opções de Critério: CHECAR COLUNA ADIÇÔES OU EXCLUS.#######
>     ####################################################################
>
>        if [[ `cut -c64` = [:digit:] ]]  # Conteúdo da coluna 64 é um dígitio?
>        then
>           $detalhes=`cut -c17-51`       # SIM, colhe o conteúdo das colunas 
> onde estão os valores
>           $adicao=`cut -c53-65`
>           $exclusao=`cut -c66-79`
>        else
>           $detalhes=$detalhes" + "`cut -c17-51` # NÃO, concatena o conteúdo 
> de detalhes
>        fi
>        echo $conta\;$detalhes\;$adicao\;$exclusao >> arqformatado.csv # 
> Descarrega o conteúdo das variáveis no arquivo
>     fi
>






Salvador S. Scardua
Departamento de TI
Programador Junior
Pianna Com. Imp. Export. Ltda
27-3373 - 7527
address@hidden
address@hidden
---------------------------------------


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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