таким образом, я получаю это, я могу использовать wget -i text_file.txt
к образам загрузки от URL in.txt, но файл также имеет некоторую странную индексацию. Я пытаюсь загрузить набор данных для машинного обучения, и оно имеет различные классы изображений.
Это имеет что-то как
2598 98 https://www.dermquest.com/image-library/image/5044bfcfc97267166cd620a2
2599 99 https://www.dermquest.com/image-library/image/5044bfcfc97267166cd61a48
2600 00 https://www.dermquest.com/image-library/image/5044bfcfc97267166cd61a49
2601 01 https://www.dermquest.com/image-library/image/5044bfd0c97267166cd64e01
2602 02 https://www.dermquest.com/image-library/image/5044bfd0c97267166cd64e02
2603 03 https://www.dermquest.com/image-library/image/5044bfd0c97267166cd63c9c
и позже...
6577 77 https://www.dermquest.com/image-library/image/5044bfd0c97267166cd64727
6578 78 https://www.dermquest.com/image-library/image/5044bfd1c97267166cd662c7
6579 79 https://www.dermquest.com/image-library/image/5044bfd0c97267166cd65888
6580 80 https://www.dermquest.com/image-library/image/5044bfd0c97267166cd635e0
6581 81 https://www.dermquest.com/image-library/image/5044bfd1c97267166cd6676d
6582 82 https://www.dermquest.com/image-library/image/5044bfd1c97267166cd6676e
6583 83 https://www.dermquest.com/image-library/image/5044bfd0c97267166cd6472b
6584 84 https://www.dermquest.com/image-library/image/5044bfd0c97267166cd6588d
Теперь я хотел бы использовать индексацию и образы загрузки с теми же индексами в тот же файл... или что-то как этот.
Спасибо!
Это похоже на простое задание для cut(1)
:
cut -d ' ' -f 3 < url-listing.txt
Можно передать его вывод по каналу непосредственно к wget
и используйте “специальное” имя файла -
читать из стандартного входа:
cut -d ' ' -f 3 < url-listing.txt | wget -i -
Можно использовать sed
удалить числа в начале каждой строки:
sed -r 's/^[0-9]+//g' urls.txt > urls_without_numbers.txt
Теперь можно использовать wget с новым url_without_numbers.txt
Если по некоторым причинам действительно необходимо сделать это, не делая новый файл как вышеупомянутый
sed -r 's/^[0-9]+//g' urls.txt | wget -i /dev/stdin
Если Ваши строки содержат диапазоны числа как 1-100
попробуйте это:
sed -r 's/^[0-9\-]+//g' urls.txt > urls_without_numbers.txt
Кажется легче мне решить это awk. Awk разделяет строкой и затем выполняет команду. С
for url in $(awk '{print $NF}' url1.txt | tr -d '\r'); do wget -L $url -O - | grep "preview-image"; done 2>&1 | grep "img src" | awk '{print $5}' | tr -d "\"" | awk -F'=' '{print $2}' &> real_urls.txt
Вы сначала печатаете последний элемент, если строка разделяется пространством (значение по умолчанию). Затем Вы удаляете '\r'
(который не должен быть в URL), и затем используйте URL в качестве аргумента в пользу wget
. Затем в wget
произведите корректное img
- тег является поиском grep
. Впоследствии, необходимо будет так или иначе получить то, что после src
. Это сделано путем удаления "
(которого нужно оставить), и затем при помощи Awk для получения то, что находится позади =
. Затем все сохраняется в real_urls.txt
. Затем можно просто загрузить:
for url in $(cat real_urls.txt); do wget "https://www.dermquest.com$url"; done