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

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

Re: [shell-script] Outras Formas de Fazer Isso


From: Eliphas Levy Theodoro
Subject: Re: [shell-script] Outras Formas de Fazer Isso
Date: Fri, 10 Feb 2006 14:29:58 -0200
User-agent: Thunderbird 1.5 (Windows/20051201)

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.


reply via email to

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