Попытка использовать wget, чтобы получить кучу файлов с сайта ftp ниже. Есть подкаталоги по годам, с 2010 по 2017 год, и дополнительные подкаталоги по отдельным месяцам. Я не хочу все месяцы, только с ноября по апрель.

Мысль что-то вроде ниже будет работать:

#! /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

но бит {2010..2017}, кажется, сбивает его с толку. Какой правильный синтаксис? Я чувствую, что я действительно близко.

Спасибо

Редактировать: Ошибка: Нет такого каталога 'DATASETS /NOAA /G02158 /masked /{2010..2017} /12_Dec'.

Edit2: пользователь xenoid отметил, что моя оболочка не может быть bash. Действительно, не было. Это был .tcsh. Спасибо всем!

1 ответ1

0

Вы действительно близки. Вы просто забыли «сделать», как

#!/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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .