Questão wget looping sobre diretórios e subdiretórios


Tentando usar o wget para puxar um monte de arquivos do site ftp abaixo. Existem subdiretórios por ano, de 2010 a 2017, e subdiretórios para meses individuais. Eu não quero todos os meses, apenas de novembro a abril.

Pensei que algo como o abaixo funcionaria:

#! /bin/bash

for months in "11_Nov" "12_Dec" "01_Jan" "02_Feb" "03_Mar" "04_Apr"
do
  wget ftp://sidads.colorado.edu/DATASETS/NOAA/G02158/masked/{2010..2017}/"$months"/*.tar
done

mas o {2010..2017} bit parece estar tropeçando. Qual é a sintaxe correta? Eu sinto que estou muito perto.

obrigado

Editar: o erro é: Nenhum diretório como "DATASETS / NOAA / G02158 / masked / {2010..2017} / 12_Dec".

Edit2: usuário xenóide notei que meu shell pode não ser bash. De fato, não foi. Foi .tcsh. Obrigado a todos!


0


origem


é sempre uma boa idéia postar a mensagem de erro de acordo, para que o ppl possa ajudar mais rápido - Jaleks
O erro é: Nenhum diretório "DATASETS / NOAA / G02158 / masked / {2010..2017} / 12_Dec". - BeepBopBoop
engraçado, não problerm com isso (abaixo) aqui: $ bash --version GNU bash, Version 4.4.12(1)-release (x86_64-pc-linux-gnu) o que você ganha echo {2010..2017}? - Jaleks
Hmmm, eu tenho o GNU bash, versão 4.3.48 (1) -release (x86_64-pc-linux-gnu). - BeepBopBoop
Ah, e para o echo {2010..2017}, recebo {2010..2017}. - BeepBopBoop


Respostas:


Você estamos muito perto. você acabou de esquecer o 'fazer', como

#!/bin/bash
# if ! echo {2010..2017}| grep 2015; then echo "your globbing needs an update"; exit 1; fi 
for months in "11_Nov" "12_Dec" "01_Jan" "02_Feb" "03_Mar" "04_Apr"
do
  wget ftp://sidads.colorado.edu/DATASETS/NOAA/G02158/masked/{2010..2017}/"$months"/*.tar
done

0



Atire, desculpe. O 'do' está no meu script, eu esqueci de incluir na minha pergunta. Eu ainda recebo o erro: Nenhum diretório "DATASETS / NOAA / G02158 / masked / {2010..2017} / 12_Dec". - BeepBopBoop