У меня есть несколько файлов, каждый файл содержит URL.
Как я могу использовать wget
чтобы считать каждый файл и загрузить URL в нем, сохраните его как контейнерное имя файла?
EX: файл name.frm
содержит:
http://some_domain.com/459830945.txt
Мне нужен URL, который будет сохранен как: файл name.txt
С тех пор wget
имеет -i
опция считать один или несколько URL из файла, простой цикл оболочки должен быть достаточным:
for f in *.frm; do
wget -i "$f" -O "${f%.frm}.txt"
done
, Если Вы не можете использовать -i
опция, затем можно считать одну строку из каждого файла с помощью удара, встроенного read
функция:
for f in *.frm; do
IFS= read -r url < "$f" && wget "$url" -O "${f%.frm}.txt"
done
Создайте сценарий удара в том же каталоге со следующим содержанием.
#! /usr/bin/env bash
SAVEIFS=$IFS
IFS= Теперь, выполните файл удара.
bash script.sh
нет никакого решения с помощью только wget
, и необходимо смешаться sed
(любая утилита к обработке текста) и считать URL, потому что файл с URL в wget не имеет пользовательского названия файла.
Моя суть .
\n'
files=$(ls -1 *.frm)
for file in ${files[@]}; do
downloaded_file=$(echo $file | sed 's/\.frm/.txt/')
url_file=$(more $file)
wget $url_file -O $downloaded_file
done
IFS=$SAVEIFS
Теперь, выполните файл удара.
bash script.sh
нет никакого решения с помощью только wget
, и необходимо смешаться sed
(любая утилита к обработке текста) и считать URL, потому что файл с URL в wget не имеет пользовательского названия файла.
Моя суть .