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: diramos
Subject: Re: [shell-script] Preenchimento com espaços a esquerda
Date: Fri, 07 Aug 2015 14:41:38 -0300

Putz, desculpem aí!!!!
O guru-de-anta aqui não tinha entendido corretamente. rsrss
Então, tá tudo certo.

Obrigado a todos pelo retorno.

Diramos



De: address@hidden
Enviada: Sexta-feira, 7 de Agosto de 2015 14:29
Para: address@hidden
Assunto: [shell-script] Preenchimento com espaços a esquerda














 

 



  


    
      
      
      O correto é 7, 15 e 7 na verdade, O objetivo não é colocar 10, 20 e 15 
espaços em branco, mas sim, completar com espaços em branco até que o tamanho 
total das strings seja 10, 20 e 15.
2015-08-07 14:23 GMT-03:00 address@hidden [shell-script] <address@hidden>:













 

 



  


    
      
      
      

Corrigindo.

Continua com numero de espaço em branco errado:

8, 16 e 8

ao invés de 10, 20 e 15 que seria o correto.



Diramos



De: address@hidden

Enviada: Sexta-feira, 7 de Agosto de 2015 14:19

Para: address@hidden

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



Continua com numero de espaço em branco. Veja:



#!/bin/bash



IFS="\;" var="123;teste;cachorro"; echo "$var" | (read c1 c2 c3;printf 
"%10s%20s%15s\n" $c1 $c2 $c3)



123               teste       cachorro



De: address@hidden



Enviada: Sexta-feira, 7 de Agosto de 2015 14:03



Para: address@hidden



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



$c1 $c2 e $c3 ficaram no subshell do pipe. Teria que imprimir as



variáveis dentro daquele subshell



IFS="\;" var="123;teste;cachorro"; echo "$var" | (read c1 c2 c3;printf 
"%10s%20s%15s\n" $c1 $c2 $c3)



$var tem que estar entre aspas, senão o valor muda



IFS="\;" var="123;teste;cachorro"; echo "$var"



123;teste;cachorro



IFS="\;" var="123;teste;cachorro"; echo $var



123 teste cachorro



Abraços Paulo Bettega



On 07-08-2015 13:07, address@hidden [shell-script] wrote:



>




> Em TEMPO:



>



> Se eu faço assim:



>



> #!/bin/bash



> IFS="\;"



> var="123;teste;cachorro"



> echo $var | read c1 c2 c3



> printf "%10s%20s%15s\n" $c1 $c2 $c3



>



> Não dá erro, mas o retorno é vazio.



>



> Grato



>



> Diramos



>



> De: address@hidden



> Enviada: Sexta-feira, 7 de Agosto de 2015 13:02



> Para: address@hidden



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



>



>



> Pessoal,



>



> Aproveitando o post:



>



> Aqui Linux, Debian 7.



>



> # echo $SHELL



> /bin/bash



>



> # echo $TERM



> xterm



>



> Aí eu faço assim:



>



> #!/bin/bash



> IFS="\;"



> var="123;teste;cachorro"



> echo $var | read c1 c2 c3



> printf "%10s%20s%15s\n" $var



>



> Resultado:



>



> 123 teste cachorro



>



> Ou seja:



>



> (8 espaços em branco)123



> (16 espaços em branco)teste



> (8 espaços em branco)cachorro



>



> Porque?!?!?



>



> Outra dúvida: como usar os comandos citados para ler o conteúdo de um arquivo 
> e não uma variável?



>



> Diramos



>



> De: address@hidden



>



> Enviada: Sexta-feira, 7 de Agosto de 2015 15:04



>



> Para: address@hidden



>



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



>



>



>



> $> echo $SHELL/usr/bin/sh



>



> Em Sexta-feira, 7 de Agosto de 2015 11:57, "Tiago Peczenyj address@hidden 
> [shell-script]"



> escreveu:



>



>



>



> ops. era o $SHELL



>



> 2015-08-07 16:55 GMT+02:00 Leandro Valiengo address@hidden [shell-script] :



>



>



>



> Fala Thiago,



>



> é o xterm



>



> Em Sexta-feira, 7 de Agosto de 2015 11:51, "Tiago Peczenyj address@hidden 
> [shell-script]"



> escreveu:



>



>



>



> ok... começa a fazer sentido, mas vc deveria descobrir qual o shell corrente.



>



> talvez



>



> $ echo $TERM



>



> mas não sei se isso é padrão



>



> 2015-08-07 16:49 GMT+02:00 Leandro Valiengo address@hidden [shell-script] :



>



>



>



> fala pessoal,



>



> quando digito uname -a, vejam:



>



> $> uname -aHP-UX #### B.11.31 U ia64 2262551860 unlimited-user license



>



> Em Sexta-feira, 7 de Agosto de 2015 11:41, "Tiago Peczenyj address@hidden 
> [shell-script]"



> escreveu:



>



>



>



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



>



>



>



> 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íodoCuritiba 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] :



>



>



>



> oi leslie,



>



> é que esse atribuição < Em Sexta-feira, 7 de Agosto de 2015 11:03, "Leslie 
> Watter address@hidden [shell-script]" 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 



> 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] 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 espacosteste tem que ficar: '          
>      teste' --> 20



> espacoscachorro tem que ficar: '       cachorro' --> 15 espacos



>



> obrigado.



>



> Em Sexta-feira, 7 de Agosto de 2015 0:22, "'Julio C. Neves' address@hidden 
> [shell-script]"



> 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]" 
> 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 << abs,



>



> Em Quinta-feira, 6 de Agosto de 2015 16:24, "'Julio C. Neves' address@hidden 
> [shell-script]"



> escreveu:



>



>



>



> Fala Leandro,já havia passado uma solução alternativa:$ IFS=\; read c1 c2 c3 <



> 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íodoCuritiba 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] 
> 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 10segunda 
> 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



>



> --



>



> Tiago B. Peczenyj



>



> http://about.me/peczenyj



>



> --



>



> Tiago B. Peczenyj



>



> http://about.me/peczenyj



>



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



>



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



>



> 



> ----------------------------------------------------------



> Enviado por: address@hidden



------------------------------------



------------------------------------



----------------------------------------------------------



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 
http://www.listas-discussao.cjb.net



----------------------------------------------------------



Servidor Newsgroup da lista: news.gmane.org



Grupo: gmane.org.user-groups.programming.shell.brazil



------------------------------------



Links do Yahoo Grupos



Para visitar o site do seu grupo na web, acesse:



http://br.groups.yahoo.com/group/shell-script/



Para sair deste grupo, envie um e-mail para:



address@hidden



O uso que você faz do Yahoo Grupos está sujeito aos:



https://info.yahoo.com/legal/br/yahoo/utos/terms/



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






    
     

    
    






  











    
     

    
    






  
  
  









reply via email to

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