使用文件wget
wget -c --load-cookies cookies.txt http://www.example.com/file
工作正常
wget -c --load-cookies cookies.txt http://www.example.com/file.mpg -O filename_to_save_as.mpg
当我使用
时wget -c --load-cookies cookies.txt -i /dir/inputfile.txt
从文本文件中传递URL,使其按预期工作。有没有办法从文本文件传递一个URL,仍然重命名输出文件,如上面的例2所示。我尝试使用参数传递-O选项,但是wget告诉我“无效的URL http://site.com/file.mpg -O new_name.mpg:scheme missing”
我也试过在网址,引号和格式之后以
的方式转义url = "http://foo.bar/file.mpg" -O new_name.mpg
有没有办法使用输入文件,仍然使用wget?
更改输出文件名如果不是,shell脚本会更合适吗?如果是这样,应该怎么写?
答案 0 :(得分:3)
我不认为wget
支持它,但可以使用小的shell脚本。
首先,创建一个这样的输入文件(inputfile.txt
):
http://www.example.com/file1.mpg filename_to_save_as1.mpg
http://www.example.com/file2.mpg filename_to_save_as2.mpg
http://www.example.com/file3.mpg filename_to_save_as3.mpg
网址和文件名由tab
字符分隔。
然后使用此bash脚本(wget2.sh
):
#!/bin/bash
while read line
do
URL=$(echo "$line" | cut -f 1 )
FILENAME=$(echo "$line" | cut -f 2 )
echo wget -c --load-cookies cookies.txt "$URL" -O "$FILENAME"
done
使用此命令:
echo input.txt | wget2.sh
更简单的解决方案是编写一个shell脚本,其中包含每个文件的wget
命令:
#!/bin/bash
wget -c --load-cookies cookies.txt http://www.example.com/file.mpg1 -O filename_to_save_as1.mpg
wget -c --load-cookies cookies.txt http://www.example.com/file.mpg2 -O filename_to_save_as2.mpg
wget -c --load-cookies cookies.txt http://www.example.com/file.mpg3 -O filename_to_save_as3.mpg