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

Мне нужно написать скрипт 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 поэтому любая помощь очень ценится. Спасибо!

  • wget для получения списка файлов
  • инструмент командной строки для одной загрузки торрента (например, wget или curl)
  • wget не может разрешить адрес хоста 80% времени
  • Почему wget игнорирует некоторые файлы в передаче ftp?
  • почему скручивание и wget приводят к запрету на 403?
  • Как использовать wget со списком URL-адресов и их соответствующими выходными файлами?
  • загружать только первые несколько байтов исходной страницы
  • удалите бит на бит бит wget
  • 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 .

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