Я загружаю несколько больших наборов файлов с ftp-сайта, используя curl
и записывая их в новые файлы с тем же именем. Я хочу использовать такую команду:Glob через длинный список файлов с curl и записывая каждый в уникальный, новый файл с соответствующим именем файла
curl ftp/site/filename > filename
Вот некоторые примеры файлов с сайта FTP:
File:Compara.6_primates_EPO.chr10_1.emf.gz 30909 KB 8/3/10 12:00:00 AM
File:Compara.6_primates_EPO.chr10_2.emf.gz 13110 KB 8/3/10 12:00:00 AM
File:Compara.6_primates_EPO.chr10_3.emf.gz 24948 KB 8/3/10 12:00:00 AM
File:Compara.6_primates_EPO.chr10_4.emf.gz 45155 KB 8/3/10 12:00:00 AM
File:Compara.6_primates_EPO.chr10_5.emf.gz 17236 KB 8/3/10 12:00:00 AM
File:Compara.6_primates_EPO.chr11_1.emf.gz 37593 KB 8/3/10 12:00:00 AM
...
500 files later
....
File:Compara.6_primates_EPO.other_9.emf.gz 8980 KB 8/3/10 12:00:00 AM
Есть много файлов, и я буду идти через много длинных списков из них. Есть некоторые численные модели, для которых я мог бы использовать
for x in {1..N}; do curl ftp/site/file${x} > file${x}
Но есть и непредсказуемые модели, как, например, вторичный числовой индекс изменяется для различных файлов. Это {1..5}
здесь:
Compara.6_primates_EPO.chr10_{1..5}
и со следующим файлом я мог бы что-то вроде
Compara.6_primates_EPO.chr11_{1..7}
, а затем там некоторые чудаки, как последний:
Compara.6_primates_EPO.other_{1..?}
Я знаю, что я не могу использовать простое подтачивание с:
curl ftp/site/file* > file*
- это просто дает мне ambiguous redirect
. Мне было интересно, знает ли кто-нибудь о умном решении, где я мог бы замаскировать имя файла, сохранить его как строку, а затем записать вывод в имя файла, не получив тоже fancy ... Я знаю, что я мог бы пойти и написать python скрипт, чтобы сделать это более систематично, но кажется, что там может быть быстро bash
решение, которое я не в состоянии думать о ...
Вы посмотрели [страницу для завитки] (http://curl.haxx.se/docs/manpage.html)? Примеры для [URL] (http://curl.haxx.se/docs/manpage.html#URL), по-видимому, указывают на то, что вам не нужно ничего, кроме диапазонов в URL-адресах ftp. –
@EtanReisner Привет, Etan, спасибо. Мое лицо немного красное сейчас, я должен был заглянуть в локоны, раньше ;-) 'curl -O ftp/*' отлично работает ... – isosceleswheel