Pular para o conteúdo

Como faço este laço? [RESOLVIDO]

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Como faço este laço? [RESOLVIDO]

Enviado em 02/03/2016 - 15:32h

Preciso fazer uma lista para um trabalho, mas não consigo realizar.
A lista deve fornecer na ordem $ANO$MES$DIA, e cada variável varia de 1 em 1. Tentei dessa forma:

for ano in $(seq 1998 2004)
do
echo $ano
done

for mes in $(seq 1 12)
do
echo $mes
done

for dia in $(seq 1 31)
do
echo $dia
done


Funcionou mas separadamente. Eu preciso que elas fiquem um ao lado do outro seguindo o padrão $ANO$MES$DIA.
Então eu tentei dessa forma:


for ano in $(seq 1998 2004); do

for mes in $(1 12);do

for dia in $(seq 1 31); do

echo $ano$mes$dia

done
done
done

E não consegui. Alguém poderia ajudar?

Obrigado

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Como faço este laço?

Melhor resposta

Enviado em 02/03/2016 - 21:24h

[quote]gabrielvmota escreveu:

Preciso fazer uma lista para um trabalho, mas não consigo realizar.
A lista deve fornecer na ordem $ANO$MES$DIA, e cada variável varia de 1 em 1. Tentei dessa forma:
Funcionou mas separadamente. Eu preciso que elas fiquem um ao lado do outro seguindo o padrão $ANO$MES$DIA.
Então eu tentei dessa forma:
Obrigado
----------------------------------------------
Boa noite gabrielvmota.
Montei um scriptizinho, verifique se é isso que quer....
O ULTIMO dia do mês é o CORRETO, tipo:
2016/JANEIRO/31
2016/FEVEREIRO/29
.
.
.

Segue o código:
#!/bin/bash
####################################
## marcelo oliver-FEV/2016-Rev:00 ##
####################################

for MES in {01..12};do
for ANO in {1998..2016};do
LASTDAY=$(echo $(cal $MES $ANO) | awk '{print $NF}')
for DIA in $(eval echo {01..$LASTDAY});do
echo "$ANO:$MES:$DIA"
done;done;done | sort -n > DIAMESANO.txt
printf "\n O RESULTADO ENCONTRA-SE EM:\n $PWD/DIAMESANO.txt\n"


PARA BAIXAR:
https://drive.google.com/open?id=0B2Fv6_t08qoMQ0ZDMm5tcEM1dG8 


OBS.: Se resolver, marque como resolvido.
Se gostar da solução, marque como melhor resposta . . .
Assim ganho uns pontinhos, o que incentiva continuar ajudando :)


att.:
marcelo oliver

3. Re: Como faço este laço?

Enviado em 02/03/2016 - 18:00h


#!/bin/bash
for ano in $(seq 1998 2004); do
for mes in $(seq 1 12); do
for dia in $(seq 1 31); do
echo $ano"/"$mes"/"$dia
done
done
done



testa ai, so pra lembrar, nem todo mes tem 31 dias precisaria tratar isso no script

4. Re: Como faço este laço? [RESOLVIDO]

Enviado em 02/03/2016 - 18:04h

echo {1998..2004}{01..12}{01..31} | tr ' ' '\n'

Falta corrigir datas esdrúxulas como 31 de fevereiro.

----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden

5. Re: Como faço este laço? [RESOLVIDO]

Enviado em 02/03/2016 - 19:11h

for i in echo {1998..2004}{01..12}{01..31}
do
echo $i
done


Falta corrigir datas esdrúxulas como 31 de fevereiro.

----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder