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

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

RE: [shell-script] Filtro para TXT - Campos com Comprimento Fixo


From: Gabriel Federizzi
Subject: RE: [shell-script] Filtro para TXT - Campos com Comprimento Fixo
Date: Tue, 9 Sep 2003 20:06:35 -0300

E se vc usar:   tr -s " " "|"   

para substituir cada conjunto de espaços por um | ou autra coisa do genero.
Assim você tem um separador.

 

cat arq.txt|tr –s “ “ “|”

Campo|Posicao|Inicial|Posicao|Final

Nome|1|35

Ender|36|70

Bairro|71|90

Cidade|91|120

CEP|121|128

UF|129|130

 

 

   _____  

From: César A. K. Grossmann [mailto:address@hidden] 
Sent: segunda-feira, 8 de setembro de 2003 11:18
To: address@hidden

 

Grande ALL!

Tenho um pequeno desafio de programação, e trata-se de outro filtro.

Suponha que você tenha um sistema que importe dados no formato TXT, um
registro por linha, campos com largura fixa, com um certo leiaute,
algo tipo:

Campo      Posicao Inicial      Posicao Final
Nome      1            35
Ender      36            70
Bairro      71            90
Cidade      91            120
CEP      121            128
UF      129            130

Suponha que você receba este arquivo de várias pessoas diferentes, só
que cada uma faz uma exportação do sistema deles, seguindo um leiaute
próprio, como, por exemplo:

Campo      Posicao Inicial      Posicao Final
Codigo      1            10
Nome      11            50
Ender      51            70
Bairro      71            90
Cidade      91            110
CEP      111            118
UF      119            120

Tem um campo a mais, e os outros campos tem alinhamento e largura
diferentes.

Não fica difícil, com a descrição acima, escrever um filtro para esta
importação, mas para fazer a importação de outros arquivos, com
diferentes formatos, seria necessário escrever novos filtros.

O ideal, a meu ver, seria se houvesse um filtro mais genérico, que
recebesse o leiaute da entrada e o leiaute de saída, e fizesse a
conversão.

Alguém sabe de alguma coisa no gênero? Pensei no AWK ou no SED, mas os
dois tem uma desvantagem: para trabalhar com registros em uma linha,
com comprimento fixo, não é exatamente direto... O AWK pede um
separador de campos (existe uma extensão no GNU AWK que possibilitaria
isto, mas a página do manual não é muito animadora sobre isto:
HYPERLINK
"http://www.gnu.org/manual/gawk-3.1.1/html_node/Constant-Size.html#Constant%
="http://www.gnu.org/manual/gawk-3.1.1/html_node/Constant-Size.html#Constant
%= 
20Size
"Note: This program uses a number of awk features that haven't been
introduced yet").

No manual do SED eu não vi nada que possa me servir...

O Perl talvez seja de ajuda, mas eu teria que aprender aquela pérola...

Alguém tem alguma sugestão?

[]s
--
César A. K. Grossmann
HYPERLINK
"http://www.LinuxByGrossmann.cjb.net/"http://www.LinuxByGrossmann.cjb.net/






Yahoo! Groups Sponsor



HYPERLINK
"http://br.rd.yahoo.com/M=218762.2810952.4917482.1588051/D=brclubs/S=2137111
254:HM/A=1331060/R=1/SIG=10vqa2grn/*http:/br.diversao.yahoo.com/"       


HYPERLINK
"http://br.rd.yahoo.com/M=218762.2810952.4917482.1588051/D=brclubs/S=2137111
254:HM/A=1331060/R=2/SIG=10vqa2grn/*http:/br.diversao.yahoo.com/"


O que você vai fazer hoje?



      seções   Academias  Bares  Cafés  Boate  Cinema  Exposições  Festas
Motéis  Parques  Pousadas  Restaurantes  Shows  Teatro  Vídeos   

  

 

 



---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em HYPERLINK
"http://www.listasdiscussao.cjb.net"http://www.listasdiscussao.cjb.net
---------------------------------------------------------------------


Seu uso do Yahoo! Grupos é sujeito aos HYPERLINK
"http://br.yahoo.com/info/utos.html"Termos do Serviço Yahoo!. 


---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.515 / Virus Database: 313 - Release Date: 1/9/2003



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.515 / Virus Database: 313 - Release Date: 1/9/2003
 


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



reply via email to

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