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

Мне нужно написать скрипт 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 и сохранение неудачных ссылок
  • Как заставить wget конвертировать * все * загруженные ссылки в относительные?
  • wget для получения списка файлов
  • Загружайте данные на веб-сайте (http) рекурсивно с помощью wget
  • Как использовать wget со списком URL-адресов и их соответствующими выходными файлами?
  • Как загрузить файл на веб-странице, которая не является прямой ссылкой, но javascript click.submit ()?
  • Как загрузить все html-файлы из каталога URL с помощью wget?
  • Не удается загрузить завиток
  • Использование wget для получения имен файлов из текстового файла
  • curl download отлично работает, но wget не работает с помощью ssl
  • загрузить несколько файлов из sourceforge
  • Linux и Unix - лучшая ОС в мире.