Как Wget изображения из CSV, добавлять URL-адрес и имена файлов из полей?

У меня есть CSV с 4 полями (id1, id2, id3, filename) следующим образом:

2,2314,78,/image/1289.jpg 1,19825,179,/image/01288.jpg 2,2585,2281,/image/01287.jpg 3,35879,82,/image/01286.jpg 

Существует общая конечная точка URL для изображений, таких как

 http://example.com/assets/?mediafile= 

Последний столбец – это уникальная часть URL-адреса изображения.

Я пытаюсь загрузить каждое изображение, и имя каждого изображения основано на первых трех полях:

id1 всегда 1 цифра
id2 действительно 5 цифр с добавочными нулями (поэтому 2314 должно стать 02314)
id3 действительно 4 цифры (78 становится 0078),

поэтому всего 10-значный код. Поэтому первое имя изображения должно быть 2023140078.jpg

Если бы я загрузил один файл вручную, я бы сделал что-то вроде этого:

 wget -O 2023140078.jpg http://example.com/assets/?mediafile=/image/1289.jpg 

Также, если бы я мог написать какой-то статус или код ошибки в строку или написать журнал ошибок, было бы здорово.

2 Solutions collect form web for “Как Wget изображения из CSV, добавлять URL-адрес и имена файлов из полей?”

 awk -F, '{printf("%d%.5d%.4d %s\n",$1,$2,$3,$4)}' input.csv | while read newfile filename do wget -O "${newfile}.jpg" http://example.com/assets/?mediafile=${filename} done 

Вы можете установить IFS в запятую и использовать цикл while для чтения 4 переменных, которые используют файл в качестве входных данных:

 IFS=',' while read c1 c2 c3 c4; do wget -O "$(printf "%d%05d%04d.jpg" "$c1" "$c2" "$c3")" "http://example.com/assets/?mediafile=${c4}" done < file.txt 
  • Загрузите только недавно измененные файлы с помощью wget over FTP
  • Как удалить BOOST 1.49 и установить BOOST 1.54 в ubuntu?
  • make install - как использовать wget, а не завивать
  • wget на лету, чтобы извлечь определенную информацию из файла, не загружая весь файл
  • как wget файл github
  • завиток и wget отрезать URL-адрес
  • попробуйте загрузить файл с сервера, если известен путь
  • Зеркальный список файлов
  • Использование wget для целевых файлов в диапазоне дат
  • Что такое флаг для загрузки скрытых файлов с помощью wget?
  • Использовать i2p или freenet в командной строке
  • Как загрузить все изображения из темы форума с помощью wget
  • Interesting Posts

    Команда для отображения каталогов, в которых нужно искать общие библиотеки?

    Растровые изображения блока e2fsck

    Блокировать SSH всем, кроме пользователя root

    монтировать другой зашифрованный том при неправильном вводе пароля

    Применить команду между разными именами каталогов

    Kali 2.0 не загрузится после двойной загрузки с Windows 10?

    Как перенаправить демона и stderr с помощью start-stop-daemon (8)?

    Запись данных как в файл, так и в последовательный порт – могу ли я использовать тройник?

    эталонная проблема при использовании sed

    Удаление символов между | трубами |

    Как удаленный рабочий стол Linux со звуковой поддержкой

    Не существует ли интерфейса ядра Linux для получения даты создания файла?

    Заменить шаблон, если перед вторым шаблоном – сохранить строку между двумя

    libkcapi – Ошибка: Ошибка Netlink: не удается открыть сокет netlink

    Значительная часть используемой памяти не учитывается пользовательскими процессами

    Linux и Unix - лучшая ОС в мире.