Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Скриптоводство

Автор dragun97yu, апреля 5, 2014, 10:57

0 Пользователи и 1 гость просматривают эту тему.

dragun97yu

Есть файлы на жёстком диске с именами вида aaaaaa_thumb.jpg
Задача: выкачать файлы, которые находятся по адресу //example.com/photo/aaaaaa.jpg
Вопрос: как это можно устроить sed'ом и ls'ом?
Неплохо б, если б ещё объяснили, как работает скрипт.
Скопка - это маленькая скопа.

Triton

Цитата: 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

Молиться, поститься и слушать радио Ватника

dragun97yu

После -I требует аргумента.
Вместо abc123.jpg забивает в запрос wget'а %25.jpg
Что я делаю не так?
Скопка - это маленькая скопа.

Triton

Цитата: dragun97yu от апреля  6, 2014, 00:56
После -I требует аргумента.
Вместо abc123.jpg забивает в запрос wget'а %25.jpg
Что я делаю не так?
Может оболочка % интерпретирует как-то по своему?

А если так? xargs -I '{}' wget 'http://example.com/photo/{}.jpg'
Молиться, поститься и слушать радио Ватника

dragun97yu

О-о да, уже теплее, спасибо.
Другая загвоздка - файлы *_thumb.jpg лежат в папке ~/foto/, а запросы на сервер посылает по адресу //example.com/photo/foto/*.jpg
Что неправильного?
Скопка - это маленькая скопа.

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр