Есть файлы на жёстком диске с именами вида aaaaaa_thumb.jpg
Задача: выкачать файлы, которые находятся по адресу example.com/photo/aaaaaa.jpg
Вопрос: как это можно устроить sed'ом и ls'ом?
Неплохо б, если б ещё объяснили, как работает скрипт.
Цитата: dragun97yu от апреля 5, 2014, 10:57
Есть файлы на жёстком диске с именами вида aaaaaa_thumb.jpg
Задача: выкачать файлы, которые находятся по адресу example.com/photo/aaaaaa.jpg
Дано:
$ ls
10_thumb.jpg 12_thumb.jpg 14_thumb.jpg 16_thumb.jpg 18_thumb.jpg 1_thumb.jpg 2_thumb.jpg 4_thumb.jpg 6_thumb.jpg 8_thumb.jpg
11_thumb.jpg 13_thumb.jpg 15_thumb.jpg 17_thumb.jpg 19_thumb.jpg 20_thumb.jpg 3_thumb.jpg 5_thumb.jpg 7_thumb.jpg 9_thumb.jpg
Решение (слово echo из команды убрать) :
$ find . -iname '*.jpg' -type f | sed -e 's|^\./||' -e 's|_thumb.*||' | xargs -I % echo wget http://example.com/photo/%.jpg
wget http://example.com/photo/20.jpg
wget http://example.com/photo/19.jpg
wget http://example.com/photo/18.jpg
wget http://example.com/photo/17.jpg
wget http://example.com/photo/16.jpg
wget http://example.com/photo/15.jpg
wget http://example.com/photo/14.jpg
wget http://example.com/photo/13.jpg
wget http://example.com/photo/12.jpg
wget http://example.com/photo/11.jpg
wget http://example.com/photo/10.jpg
wget http://example.com/photo/9.jpg
wget http://example.com/photo/8.jpg
wget http://example.com/photo/7.jpg
wget http://example.com/photo/6.jpg
wget http://example.com/photo/5.jpg
wget http://example.com/photo/4.jpg
wget http://example.com/photo/3.jpg
wget http://example.com/photo/2.jpg
wget http://example.com/photo/1.jpg
После -I требует аргумента.
Вместо abc123.jpg забивает в запрос wget'а %25.jpg
Что я делаю не так?
Цитата: dragun97yu от апреля 6, 2014, 00:56
После -I требует аргумента.
Вместо abc123.jpg забивает в запрос wget'а %25.jpg
Что я делаю не так?
Может оболочка % интерпретирует как-то по своему?
А если так?
xargs -I '{}' wget 'http://example.com/photo/{}.jpg'
О-о да, уже теплее, спасибо.
Другая загвоздка - файлы *_thumb.jpg лежат в папке ~/foto/, а запросы на сервер посылает по адресу example.com/photo/foto/*.jpg
Что неправильного?