On 10/12/07, Alberto Vieira Ferreira Monteiro <albmont(a)centroin.com.br> wrote:
Desisto. Ou eu sou muito burro, ou essa documentação é muito ruim.
Eu quero fazer o seguinte: dado um número n (que pode ser desde 1 a 99999),
eu quero escrevê-lo com 5 campos, precedidos por 0.
Por exemplo, 42 vira 00042, e 3141 vira 03141
Em C, isso é trivial: printf("%05d", n);
Mas eu sou teimoso, e tentei fazer isso com sed.
Teoricamente, alguma coisa do tipo:
n=42
echo "00000$n:" | sed -n 's/*([0-9]{5}):/\1/p'
devia funcionar, mas não funciona. Tentei acrescentar vários \, sem sucesso.
Obviamente, os helps e FAQs não ajudam. Alguém tem alguma idéia de
como isso funciona?
Alberto Monteiro
Não manjo nada de sed, mas acho que o comando abaixo resolve seu problema :
printf formato string
Onde formato é igual ao do C %d,%c etc....
E a string é o que deve ser impresso.
Exemplo:
printf %09d 10
Serve ?
--
LUN : #257752.
http://www.liquuid.net
Jabber: xsl4v3(a)jabber.org
http://www.flickr.com/photos/slave/