wget определенный файл, используя регулярные выражения в каталогах и именах файлов - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь загрузить ftp: //ftp.flybase.net/releases/current/dmel_r6.21/fasta/dmel-all-translation-r6.21.fasta.gz через wget.Я запускаю эту команду: wget ftp: //ftp.flybase.net/releases/current/dmel_r*/fasta/dmel-all-translation-r*.fasta.gz

что я делаю не так?Спасибо

1 Ответ

0 голосов
/ 23 мая 2018

Я решил это с помощью следующего сценария оболочки

#!/bin/bash

[ -d Test_Wget ] && (echo "directory exists,  changing directory for child process") || (mkdir Test_Wget && echo "directory created, changing directory for child process")
cd Test_Wget

if [ ! -f index.html ];
then
    wget --no-parent -A 'dmel_r*/fasta/dmel-all-translation-r*.fasta.gz' ftp://ftp.flybase.net/releases/current/
fi

awk '/href.*dmel/' index.html > url_with_crap

grep -o '".*"' url_with_crap > url_with_quotes

part_url=$(sed -e 's/^"//' -e 's/"$//' < url_with_quotes)

url="$part_url/fasta/dmel-all-translation-r*.fasta.gz"

wget $url

gunzip dmel-all-translation-r*.fasta.gz

shopt -s extglob
rm -- !(dmel-all-translation-r*.fasta)

Я уверен, что это слишком наивное решение проблемы.Жду элегантного ответа

...