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:56:40 -0300

Funcionou Perfeitamente! 
E pensar que perdi o sono lendo o man do cut, meu deus que desperdícil não ter 
respeitado o awk do Kernighan & cia, não vou tirar seus créditos, vou manter 
sua engine como está (com seu nome como autor) e a chamarei de dentro de meu 
script mestre (awk -f scrawk entrada.dat), estou muito grato por ter me animado 
em relação a programação de shellscript.


>Mensagem: 12        
>     Data: Thu, 11 May 2006 00:08:35 -0300
>       De: Fabiano Caixeta Duarte <address@hidden>
>  Assunto: Re: Formatação de arquivo orientado a colunas (cut)
>
>-----BEGIN PGP SIGNED MESSAGE-----
>Hash: SHA1
>
>Salvador (da Pátria?),
>
>Em bash puro, só nosso amigo Júlio :) ( de preferência um one-liner )
>
>Em awk arrisquei um primeiro rascunho. Utilize o manual do awk (man awk)
>para entender o que eu fiz. Em caso de dúvidas, é só perguntar que eu
>esclarecerei.
>
>Detalhe importante: o script a seguir não trata a questão das linhas
>consecutivas contendo apenas descrição, conforme exemplo a seguir (fica
>para a segunda versão do script):
>>                 PG OSVALDO REF      FRETE CFE
>>                 RECIBO
>
>Outra coisa, a construção /[0-9/]{10}/, ou seja, utilizando
>quantificadores "{}", insistiu em não funcionar aqui em casa... preciso
>descobrir por que. Por isto a ER meio troncha na linha 17.
>
>Divirta-se ;)
>
>##########
># Script #
>##########
>
>#!/usr/bin/awk -f
>
>BEGIN {
>  FIELDWIDTHS="16 20 10 5 13 15"
>}
>
>function trim(str){
>  gsub(/^[ ]+/,"",str)
>  gsub(/[ ]+$/,"",str)
>  return str
>}
>
>$1 ~ /^[^ ]/ {
>  cod=$1
>  gsub(/[ ]/,";",cod)
>}
>{
>  if ($3 ~ /[0-3][0-9][/][0-1][0-9][/][0-9]/) {
>    desc=$2
>    data=$3
>    trans=trim($4)
>    negativo=trim($5)
>    positivo=trim($6)
>  }
>  else {
>      $1=""
>      print cod,desc,data,trans" +"$0";"negativo";"positivo
>  }
>}
>
>Abraços!
>
>Fabiano Caixeta Duarte
>Consultor em soluções para Redes de Computadores
>Linux User #195299
>Ribeirão Preto - SP






----------------------------------------
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]