Pular para o conteúdo

Como faço [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Como faço [RESOLVIDO]

Enviado em 19/06/2016 - 07:53h

Olá a todos!
Gostaria de saber como posso formatar um valor de saída no Shell Script.
Tipo, se sair 1,2,3... gostaria de formatar para sair 01,02,03...

No Visual Basic isso é muito simples, basta usar uma função chamada "Format", mas no Shell não faço ideia de como fazer isso...

Desde já agradeço a ajuda!

Responder tópico

2. Re: Como faço [RESOLVIDO]

Enviado em 19/06/2016 - 07:55h

Danleonhart escreveu:

Olá a todos!
Gostaria de saber como posso formatar um valor de saída no Shell Script.
Tipo, se sair 1,2,3... gostaria de formatar para sair 01,02,03...

No Visual Basic isso é muito simples, basta usar uma função chamada "Format", mas no Shell não faço ideia de como fazer isso...

Desde já agradeço a ajuda!
Você pode mostrar um pouco do código para perceber o que você precisa?

3. Re: Como faço [RESOLVIDO]

Enviado em 19/06/2016 - 12:50h

faça:
echo {00..10} 

=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
=====================================================================

4. Re: Como faço [RESOLVIDO]

Enviado em 19/06/2016 - 13:24h

Use o builtin printf:
#!/bin/bash
let 'num = 5'
printf "%02d\n" $num
Mais informações: man printf
--
Linux User: #596371

5. Re: Como faço [RESOLVIDO]

Enviado em 20/06/2016 - 02:57h

Meu script:

#!/bin/bash

# Praticando:
for ano in $(seq 2000 2001)
do
for mes in $(seq 1 12)
do
for dia in $(seq 1 31)
do
dia=`printf "%02d\n" $dia`
mes=`printf "%02d\n" $mes`
echo -n -e "$dia$mes$ano\n" >> datas.txt

done
done
done
Está apresentando esse erro agora:

./faz.sh: line 11: printf: 08: invalid octal number
./faz.sh: line 11: printf: 09: invalid octal number
./faz.sh: line 11: printf: 08: invalid octal number
./faz.sh: line 11: printf: 09: invalid octal number
Processa parte do solicitado...em alguns casos na variável "mes" aparece 00...

6. Re: Como faço [RESOLVIDO]

Enviado em 20/06/2016 - 03:41h

É mais simples do que parece:


#!/bin/bash

for ano in {2000..2001}; do
for mes in {01..12}; do
for dia in {01..31}; do
echo "$dia/$mes/$ano"
done
done
done


=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
=====================================================================

7. Re: Como faço [RESOLVIDO]

Enviado em 20/06/2016 - 07:22h

Nesse caso o script com echo também funciona. Com o printf, não precisa armazenar a variável, dá para fazer diretamente:
#!/bin/bash

# Praticando:
for ano in $(seq 2000 2001)
do
for mes in $(seq 1 12)
do
for dia in $(seq 1 31)
do
printf "%02d%02d%04d\n" $dia $mes $ano >> data.txt
done
done
done
--
Linux User: #596371

8. Re: Como faço [RESOLVIDO]

Enviado em 20/06/2016 - 09:05h

Senhores ctw6av e ru4n, de ambas maneiras funcionaram perfeitamente!
Muito obrigado pelo esclarecimento! Com exemplo fica mais fácil de entender.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder