2009/4/8 Rodrigo Vian <[email protected]>: > 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 > 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
