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

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

RESOLVIDO [shell-script] Formatar Campos respeitando limite


From: Rodrigo Vian
Subject: RESOLVIDO [shell-script] Formatar Campos respeitando limite
Date: Thu, 09 Apr 2009 11:26:09 -0300
User-agent: Thunderbird 2.0.0.18 (X11/20081120)

Bom dia Pessoal,

Resolvi meu problema... Obrigado Fabiano e Flávio por darem uma luz.. rs 
e também o livro do Júlio que chegou ontem rsrsrsr

Resolvi usando awk

-------------------
#!/bin/sh

FILE="/home/relatorio/dados.txt"
FILEF="/home/relatorio/dadosf.txt"
awk -F , '
{ printf "%-19s|%-15d|%-2s|%-15d|%-2s|%-6s|%-9s|%s\n", 
$1,$2,$3,$4,$5,$6,$7,$8 > $FILEF }
' $FILE

Abraços!

Rodrigo Vian escreveu:
>
>
> Bom dia Fabiano,
>
> Estarei testando e falo se deu certo aki....
>
> O campo pode estar menor mesmo, pois na verdade eu ainda não determinei
> o tamanho de cada campo... rs
>
> obrigado!
>
> Fabiano Caixeta Duarte escreveu:
> >
> >
> > 2009/4/8 Rodrigo Vian <address@hidden 
> <mailto:listas%40porttaltecnologia.com.br>
> > <mailto:listas%40porttaltecnologia.com.br>>:
> > > Boa tarde Lista,
> > > Andei pesquisando e quebrando a cabeça mas não encontrei nada.
> > >
> > > A minha situação é a seguinte:
> > >
> > > Seleciono dados de uma base de dados mysql (até ai tudo tranquilo,
> > > inclusive já sai formatado em CSV pra importação no excel). Porém para
> > > um outro programa do meu cliente que devo enviar esses dados eu tenho
> > > que iniciar os campos em uma coluna exata, pois o programa identifica
> > > por posição.
> > >
> > > Segue alguns detalhes dos dados em csv:
> > > "2009-04-05 19:22:59","11111111","SRV/1","2222","SRV/23","10"
> > > "2009-04-05 19:22:59","333311111111","SRV/11","44442222","FTP/1","100"
> > > "2009-04-05 
> 19:22:59","1234567","SRV/1","2222","SERVIDOR/1-0000548","62"
> > > "2009-04-05 19:22:59","11111111","MAIL/2-5487","2222","SRV/23","9"
> > > --------------
> > > Quero formatar a saida para que o dado do referido campo sempre 
> saia com
> > > inicio na coluna que eu especifcar.
> > > Exemplo:
> > > campo 1: coluna 1
> > > campo 2: coluna 21
> > > campo 3: coluna 41
> > > campo 4: coluna 65
> > > campo 5: coluna 75
> > > campo 6: coluna 100
> > >
> > > OBS: Sem usar o TAB..
> > >
> > > É POSSÍVEL.
> > >
> > > Desde já agradeço!
> > >
> > > Att.
> > >
> > >
> > >
> > > Rodrigo S. Vian
> > > Analista TI
> > > Porttal Tecnologia
> > > Soluções em TI & Telecom
> > > http://www.porttaltecnologia.com.br 
> <http://www.porttaltecnologia.com.br>
> > <http://www.porttaltecnologia.com.br 
> <http://www.porttaltecnologia.com.br>>
> > > phone:55+19+3542-9667
> > > mobile:55+19+7808-5121
> > > nextel:55*89*25546
> >
> > Eu usaria o printf. Ele permite que se diga quantos caracteres uma
> > string deve ocupar.
> >
> > (
> > IFS=,
> > while read a b c d e f; do
> > printf "%-20s%-20s%-20s%-15s%-10s%-25s\n" $a $b $c $d $e $f
> > done < <(tr -d '"' < arquivo)
> > )
> >
> > O detalhe é que a string SERVIDOR/1-0000548 não cabe em 10 espaços ;)
> >
> > --
> > Fabiano Caixeta Duarte
> > Especialista em Redes de Computadores
> > Linux User #195299
> > Ribeirão Preto - SP
> >
> >
>
> Rodrigo S. Vian
> Analista TI
> Porttal Tecnologia
> Soluções em TI & Telecom
> http://www.porttaltecnologia.com.br <http://www.porttaltecnologia.com.br>
> phone:55+19+3542-9667
> mobile:55+19+7808-5121
> nextel:55*89*25546
>
> |-- Antes de Imprimir, pense em sua responsabilidade com o Meio 
> Ambiente --|
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 


Rodrigo S. Vian
Analista TI
Porttal Tecnologia
Soluções em TI & Telecom
http://www.porttaltecnologia.com.br
phone:55+19+3542-9667
mobile:55+19+7808-5121
nextel:55*89*25546

|-- Antes de Imprimir, pense em sua responsabilidade com o Meio Ambiente --|

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



reply via email to

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