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

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

RES: [shell-script] Preencher variável


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] Preencher variável
Date: Wed, 14 Jul 2004 14:51:29 -0300

Use o comando printf, que por ser um builtin do bash, é bem rápido. Ex:

Prompt> var=MARIA
Prompt> var1=$(printf "%-$((${#var}+3))s:\n" $var)
Prompt> echo "$var1"
MARIA   :

No exemplo acima, ${#var} devolve o tamanho da variável (no caso 5).
$((${#var}+3)) devolve 8 pois é 5 + 3. Então o que foi executado é printf
"%-8s:\n" $var, ou seja, escrever o conteúdo de $var com 8 posições alinhado
à direita. o : é para vc ver que ficaram 3 espaços em branco após MARIA e o
\n é para saltar linha.

O que fiz é genérico para qq tamanho de variável. No caso específico do
exemplo bastaria fazer:

Prompt> printf "%-8s" $var

[ ]s, 
Julio Cezar Neves
- Gerente do Programa de Software Livre -
Tel:+55 21 2528-7070 / +55 21 8112-9988
Fax: +55 21 2528-7646
mailto:address@hidden


| -----Mensagem original-----
| De: Saulo Calixto Bonfim [mailto:address@hidden]
| Enviada em: quarta-feira, 14 de julho de 2004 12:06
| Para: address@hidden
| Assunto: Re: [shell-script] Preencher variável
| 
| 
| 
| Em 14-07-2004 11:34, fpasa escreveu:
| 
| >Pessoal,
| >
| >como faço para completar com espaços uma variável ?
| >Por exemplo:
| >x="MARIA"
| >
| >Quero que adicione espaços para ficar assim "MARIA   "
| >Neste exemplo adicionei 3 espaços.
| >  
| >
| 
| $ x=MARIA
| $ echo $x | sed 's/$/   /g'
| 
| sed substituindo o final da variável por 3 espaços
| 
| 
| -- 
| -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| Saulo Calixto Bonfim      -       address@hidden
| Chave PGP: http://www.saulo.eti.br/saulo-pgp.key
| Powered by Conectiva Linux 9 - Kernel 2.6.7
| -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| 
| Linux: nine out of ten gynecologists recommend it
| 
| 
| 
| 
| 
| ---------------------------------------------------------------------
| 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
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 
 


reply via email to

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