Как загрузить много документов на терминал с сервера?

Мне нужно написать скрипт bash (.sh) с менее чем 300 символами, который загружает все геномы 22 на этом сервере ftp://ftp.ncbi.nih.gov/genomes/Homo_sapiens/ (те, у которых расширение fa.gz ) и извлекает их. Моим первым было просто написать wget ftp://ftp.ncbi.nih.gov/genomes/Homo_sapiens/CHR_01/hs_alt_CHM1_1.1_chr1.fa.gz | gunzip wget ftp://ftp.ncbi.nih.gov/genomes/Homo_sapiens/CHR_01/hs_alt_CHM1_1.1_chr1.fa.gz | gunzip но я не могу этого сделать для 22 файлов. Я понял, что все файлы имеют одно и то же имя, кроме номера рядом с CHM и chr. Например, десятый геном – ftp://ftp.ncbi.nih.gov/genomes/Homo_sapiens/CHR_10/hs_alt_CHM1_1.1_chr10.fa.gz. Наверное, мне нужно сделать какой-то код рекурсии, но я не очень разбираюсь в bash поэтому любая помощь очень ценится. Спасибо!

One Solution collect form web for “Как загрузить много документов на терминал с сервера?”

Простой цикл должен быть достаточно:

 for i in {1..22} do wget "ftp://ftp.ncbi.nih.gov/genomes/Homo_sapiens/CHR_${i}/hs_alt_CHM1_1.1_chr${i}.fa.gz" gunzip "hs_alt_CHM1_1.1_chr${i}.fa.gz" done 

Индекс цикла не должен быть просто числом, вы можете получить файлы MT , Un , X и Y а также:

 for i in {1..22} MT Un XY 

Поскольку первый набор чисел должен быть нулевым, вы можете использовать printf для этого:

Или:

 firsti="$(printf "%02d" $i)" wget "ftp://ftp.ncbi.nih.gov/genomes/Homo_sapiens/CHR_${firsti}/hs_alt_CHM1_1.1_chr${i}.fa.gz" 

Вы можете запустить тест для этого цикла, но проще просто переместить символы ( MT Un XY ) в отдельный цикл, используя оригинальный wget .

  • Как получить текст страницы с помощью wget без html?
  • Как отключить сжатие gzip с помощью wget?
  • `wait` не ждет` wget -background`
  • wget сохраняет загруженные файлы как имя короткой ссылки, а не фактические имена файлов
  • Статическая компиляция wget
  • Загрузите документы, на которые ссылается веб-страница с wget
  • Как получить размер (deb) файла из ссылки для загрузки / URL?
  • Вопрос о wget -qO-
  • wget - как отклонить строку от загрузки html-страниц
  • У curl есть опция -no-check-certificate, например wget?
  • Загрузка вложенных файлов PDF с помощью wget
  • Interesting Posts

    Сопоставьте начало линии с чем-то там?

    как настроить гостевые дополнения (драйверы) виртуальной коробки в системе systemd (exherbo)

    Как сгенерировать набор новых разных файлов с помощью сценариев оболочки с определенным именем шаблона?

    Grep регулярное выражение для отображения только серийных номеров (определенной длины, содержащих альфа и цифру) в файле CSV

    сценарий оболочки для проверки состояния переданной строки

    Скопировать initramfs в определенное место после сборки?

    extract включить в файл C

    Как выполнить двойную загрузку двух дистрибутивов Linux?

    Каков эффект «$ {(@ f) …}» в Zsh?

    Как установить из скрипта bash?

    Почему эхо игнорирует мои кавычки?

    Скопируйте конкретный подкаталог и сохраните структуру дерева каталогов

    Как подключиться к SSH-серверу за брандмауэром с использованием другого сервера?

    Каковы происхождение rgb.txt?

    Как я могу увидеть все записи cron в CentOs7

    Linux и Unix - лучшая ОС в мире.