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

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

Re: [shell-script] Preenchimento com espaços a esquerda


From: Ultimo de Miranda
Subject: Re: [shell-script] Preenchimento com espaços a esquerda
Date: Fri, 07 Aug 2015 11:56:04 -0300

Existe esse "esquema" no ksh ?
IFS=\;;  read c1 c2 c3 < <(echo "123;teste;cachorro")

On Fri, 2015-08-07 at 16:41 +0200, Tiago Peczenyj
address@hidden [shell-script] wrote:
>   
> Julio
> 
> 
> Como no ksh as variaveis "depois do pipe" voltam?
> 
> 2015-08-07 16:38 GMT+02:00 'Julio C. Neves' address@hidden
> [shell-script] <address@hidden>:
>           
>         Isso é um artifício do Bash que se chama Here String e que no
>         ksh (UNIX) equivale a:
>         
>         
>         IFS=\;
>         echo "123;teste;cachorro" | read c1 c2 c3
>         
>         printf "%10s%20s%15s\n" $c1 $c2 $c3
>         
>         
>         
>         Isso deve funcionar.
>         
>         Abcs,
>         Julio
>         @juliobash
>         Próximos cursos de Shell
>         
>         
>         Cidade         Local Período
>         Curitiba SoftSell 10/08 a 14/08 
>         São Paulo 4Linux 21/09 a 25/09 
>         Rio de Janeiro EDX 05/10 a 09/10 
>         
>         São Paulo 4Linux 07/12 a 11/12 
>         
>         
>         Dou treinamento de Shell em qualquer cidade.
>         Para mais detalhes, me mande um e-mail.
>         
>                 > 
>         
>         
>         2015-08-07 11:25 GMT-03:00 Leandro Valiengo
>         address@hidden [shell-script]
>         <address@hidden>:
>                   
>                 oi leslie, 
>                 
>                 
>                 é que esse atribuição <<< não funciona no meu prompt
>                 do unix...
>                 
>                 
>                 
>                 
>                 Em Sexta-feira, 7 de Agosto de 2015 11:03, "Leslie
>                 Watter address@hidden [shell-script]"
>                 <address@hidden> escreveu:
>                 
>                 
>                 
>                   
>                 
>                 Oi Leandro, 
>                 
>                 
>                 Leandro, vc só tirou o comando que mostra como vc
>                 quer. Veja só o quote da resposta que o Julio já tinha
>                 te mandado:
>                 
>                 
>                 %%%% > Fala Leandro,
>                 %%%% > já havia passado uma solução alternativa:
>                 %%%% > $ IFS=\; read c1 c2 c3 <<< "123;teste;cachorro"
>                 %%%% > $ printf "%10s%20s%15s\n" $c1 $c2 $c3
>                 
>                 
>                 o comando que mostra as strings do jeito que vc quer é
>                 o printf. 
>                 os outros só servem pra colocar as variáveis de teste
>                 em c1 c2 e c3
>                 
>                 
>                 Att,
>                 
>                 
>                 LEslie
>                 
>                 
>                 
>                 On Fri, Aug 7, 2015 at 10:10 AM, Leandro Valiengo
>                 address@hidden [shell-script]
>                 <address@hidden> wrote:
>                           
>                         
>                         prezados, 
>                         
>                         
>                         bom dia. 
>                         
>                         
>                         é unix. e vejam a linha de comando que
>                         mandaram agora, funcionou em partes...rs. Mas
>                         lembrem-se, no original, pedi para colocar os
>                         espacos antes das colunas e nao vejo nada
>                         disso no comando ou na resposta: 
>                         
>                         
>                         $> echo  "123;teste;cachorro" | (IFS=\; read
>                         c1 c2 c3;echo $c1 - $c2 - $c3)
>                         
>                         123 - teste - cachorro
>                         
>                         
>                         
>                         Lembrando que preciso completar com espaço: 
>                         
>                         
>                         123 tem que ficar: '       123' --> 10 espacos
>                         teste tem que ficar: '               teste'
>                         --> 20 espacos
>                         cachorro tem que ficar: '       cachorro' -->
>                         15 espacos
>                         
>                         
>                         obrigado. 
>                         
>                         
>                         
>                         
>                         
>                         
>                         Em Sexta-feira, 7 de Agosto de 2015 0:22,
>                         "'Julio C. Neves' address@hidden
>                         [shell-script]"
>                         <address@hidden> escreveu:
>                         
>                         
>                         
>                           
>                         
>                         Fala Leandro, que shell é esse que vc está
>                         usando? Isso é UNIX? Se for, o ksh não tem
>                         here strings (<<<).
>                         PBS: o ponto e vírgula após a declaração do
>                         IFS, não existe.
>                         Em 06/08/2015 17:03, "Leandro Valiengo
>                         address@hidden [shell-script]"
>                         <address@hidden> escreveu:
>                                   
>                                 
>                                 Prezados, 
>                                 
>                                 
>                                 muito obrigado pelas solucoes. Estou
>                                 tentando usar do Julinho, pois ele diz
>                                 q é a mais rapida pois é shell puro. 
>                                 
>                                 
>                                 Julio, 
>                                 
>                                 
>                                 Estou recebendo um erro ao tentar
>                                 reproduzir a linha de comando no
>                                 prompt: 
>                                 
>                                 
>                                 $> IFS=\; read c1 c2 c3 <<<
>                                 "123;teste;cachorro"
>                                 sh: Syntax error: `<' is not expected.
>                                 
>                                 
>                                 abs,
>                                 
>                                 
>                                 
>                                 
>                                 
>                                 
>                                 Em Quinta-feira, 6 de Agosto de 2015
>                                 16:24, "'Julio C. Neves'
>                                 address@hidden [shell-script]"
>                                 <address@hidden>
>                                 escreveu:
>                                 
>                                 
>                                 
>                                   
>                                 
>                                 Fala Leandro,
>                                 já havia passado uma solução
>                                 alternativa:
>                                 $ IFS=\; read c1 c2 c3 <<<
>                                 "123;teste;cachorro"
>                                 $ printf "%10s%20s%15s\n" $c1 $c2 $c3
>                                        123               teste
>                                 cachorro
>                                 
>                                 
>                                 Só esqueci de dizer que essa solução
>                                 deve ser mais rápida que a com awk, pq
>                                 é shell puro.
>                                 
>                                 Abcs,
>                                 Julio
>                                 @juliobash
>                                 Próximos cursos de Shell
>                                 
>                                 
>                                 Cidade         Local Período
>                                 Curitiba SoftSell 10/08 a 14/08 
>                                 São Paulo 4Linux 21/09 a 25/09 
>                                 Rio de Janeiro EDX 05/10 a 09/10 
>                                 
>                                 São Paulo 4Linux 07/12 a 11/12 
>                                 
>                                 
>                                 Dou treinamento de Shell em qualquer
>                                 cidade.
>                                 Para mais detalhes, me mande um
>                                 e-mail.
>                                 
>                                         > 
>                                 
>                                 
>                                 
>                                 Em 6 de agosto de 2015 15:36, Leandro
>                                 Valiengo address@hidden
>                                 [shell-script]
>                                 <address@hidden>
>                                 escreveu:
>                                           
>                                         
>                                         Prezados, 
>                                         boa tarde. 
>                                         
>                                         
>                                         Tenho um arquivo separado por
>                                         ';' como por exemplo: 
>                                         
>                                         
>                                         123;teste;cachorro
>                                         
>                                         
>                                         
>                                         Minha missao é preencher com
>                                         espaco da seguinte forma: 
>                                         
>                                         
>                                         primeira posição: Preencher
>                                         com espacos até a posicao
>                                         total ser 10
>                                         segunda posição: Preencher com
>                                         espacos até a posicao total
>                                         ser 20 
>                                         terceira posição: Preencher
>                                         com espacos até a posicao
>                                         total ser 15
>                                         
>                                         
>                                         
>                                         Qual o comando com awk para
>                                         realizar esse trabalho? 
>                                         
>                                         
>                                         abs, 
>                                         
>                                         
>                                         
>                                         
>                                         
>                                         
>                                 
>                                 
>                                 
>                                 
>                                 
>                                 
>                                 
>                                 
>                         
>                         
>                         
>                         
>                         
>                         
>                         
>                 
>                 
>                 
>                 
>                 -- 
>                 Leslie H. Watter
>                 
>                 
>                 
>                 
>                 
>                 
>         
>         
>         
> 
> 
> 
> 
> -- 
> Tiago B. Peczenyj
> 
> http://about.me/peczenyj
> 




reply via email to

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