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

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

  • Как загрузить pdf-файлы, на которые ссылаются страницы одного или двух уровней внутри семени
  • Загрузите контент из определенного <div> с помощью wget
  • Можно ли получить «старую» временную марку?
  • Почему «wget -r -e robots = off http://ccachicago.org» не действует рекурсивно?
  • Wget - получение рекурсивных URL-адресов из списка URL-адресов
  • Как определить, куда перенаправляется ссылка
  • Wget не загружает изображения в рекурсивную загрузку
  • Как заставить `wget` использовать метод GET для извлечения реквизитов страниц?
  • 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 - лучшая ОС в мире.