Как 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 

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

  • Могу ли я захватить и отправить запросы GET с помощью wget?
  • Загрузка пакета Wget и сохранение неудачных ссылок
  • вывод команды curl в переменной
  • Как отобразить все URL-адреса в цепочке перенаправления?
  • Получение файла с wget, когда имя файла может немного измениться
  • Как передать файлы, загруженные с помощью wget через tar?
  • wget - Как загрузить рекурсивно и только определенные типы / расширения mime (т. е. только текст)
  • wget-файлы по шаблону только из указанных каталогов рекурсивно
  • 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 
    Linux и Unix - лучшая ОС в мире.