[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: [shell-script] Outras Formas de Fazer Isso
From: |
Julio Cezar Neves - DATAPREVRJ |
Subject: |
RES: [shell-script] Outras Formas de Fazer Isso |
Date: |
Fri, 10 Feb 2006 15:05:35 -0200 |
Eliphas sumiu e reapareceu com força total!
Nessa vc extrapolou :)
[ ]s,
Julio
==================================
ENSOL: dias 12, 13 e 14 de maio
na Universidade Federal da Paraíba.
Veja detalhes em http://www.ensol.org.br
http://www.julioneves.com
| -----Mensagem original-----
| De: Eliphas Levy Theodoro [mailto:address@hidden]
| Enviada em: sexta-feira, 10 de fevereiro de 2006 14:30
| Para: address@hidden
| Assunto: Re: [shell-script] Outras Formas de Fazer Isso
|
|
| Não sei o seq de vocês, mas acho que o meu é turbinado ';)
|
| eliphas@microsoft$ seq -f %05.0f 10 15
| 00010
| 00011
| 00012
| 00013
| 00014
| 00015
| eliphas@microsoft$ seq --version
| seq (coreutils) 5.2.1
| eliphas@microsoft$
|
| Eu usei o --format que tem na minha manpage, que
| aparentemente não era
| pra isso, mas funciona hehe
|
| -f, --format=FORMAT use printf style floating-point FORMAT
| (default: %g)
|
| Ele não aceita %5d ou algo assim, só o %f ou %g pra pontos
| flutuantes.
| Mas dá pra cortar o ponto flutuante!
|
| [ ]'s
| --
| Eliphas
|
| Julio Cezar Neves - DATAPREVRJ escreveu:
| > Gentil,
| > e se vc fizesse assim:
| >
| > function gseq() {
| > vi=${1}
| > vf=${2}
| > seq $vi $vf | xargs printf "%0${#vi}d\n"
| > }
|
| > | De: Gentil de Bortoli Júnior
| > |
| > | Pessoal, precisei gerar uma seqüência numérica para um
| det. problema.
| > | O comando seq normalmente ajudaria, mas há um porém.
| > |
| > | Os meus intervalos funcionam da seguinte forma.
| > |
| > | Exemplo 1
| > | Entrada: [001-010]
| > | Saída: 001 002 003 004 .. 010
| > |
| > | Exemplo 2
| > | Entrada: [0000001-000000010]
| > | Saída: 0000001 0000002 0000003 .. 0000010
| > |
| > | Dei uma olhada no manual do seq e infelizmente, pelo que entendi,
| > | o mais próximo que ele chega disso é empregando a opção -w,
| > | que não resolve.
| > |
| > | Decidi então fazer uma função bem simples para isso.
| > |
| > | Eu gostaria de saber se alguém conhece outra forma de conseguir
| > | esse resultado ou se alguém tem alguma sugestão para a função.
| > |
| > | Segue o código:
| > |
| > | function gseq() {
| > | vi=${1}
| > | vf=${2}
| > |
| > | for v in $(seq ${vi} ${vf}); do
| > | printf "%0${#vi}d\n" ${v}
| > | done
| > | }
| > |
| > | Exemplo de uso:
| > |
| > | gseq.sh 00000001 20
| > |
| > | Saída: 00000001 00000002 .. 00000020
| > |
| > | Ou seja, o primeiro parâmetro serve como especificador de
| > | formato e valor
| > | inicial e o segundo parâmetro indica o final da seqüência.
|
|
| ---------------------------------------------------------------------
| 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