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:19:45 -0300

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 < $ 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] 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 <<< "123;teste;cachorro"sh: Syntax error: `
> 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 
> << "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í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/





reply via email to

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