Como faço [RESOLVIDO]

1. Como faço [RESOLVIDO]

Daniel Camilo da Silva
DebDann

(usa Debian)

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!


  


2. Re: Como faço [RESOLVIDO]

Ricardo Ramos
cesar.rickinho

(usa Ubuntu)

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]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

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]

Perfil removido
removido

(usa Nenhuma)

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]

Daniel Camilo da Silva
DebDann

(usa Debian)

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]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

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]

Perfil removido
removido

(usa Nenhuma)

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]

Daniel Camilo da Silva
DebDann

(usa Debian)

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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts