Как 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 
  • Как сделать рекурсивную загрузку с помощью gwget (wget frontend)?
  • Уменьшите скорость загрузки wget или curl во время загрузки
  • wget загруженные имена файлов с абсолютным путем для использования с apt-get
  • linux curl POST запрос не работает
  • зеркало сайта с wget, что только ответ с gzip
  • Загрузите весь сегодняшний стек с помощью wget
  • Использование wget для загрузки изображений в разговорах в facebook
  • bash не может найти команду mvn после установки
  • Почему wget сохраняет рекурсивные данные, несмотря на -l5?
  • wget с проверкой 304
  • wget и предотвращение загрузки файлов на рекурсивный wget
  • Linux и Unix - лучшая ОС в мире.