如何wget文件并保存为域名?

时间:2015-10-29 20:36:21

标签: shell wget gnu-parallel

这是我目前正在运行的wget文件:

parallel -a list.txt --jobs 100 wget -P /home/files/

list.txt文件包含一个文件列表,例如:

example.com/test.html
anotherexample.com/test.html
sample.com/test.html

但是,它显然希望将每个文件保存为test.html

我要做的是弄清楚如何编辑上面的命令,将每个文件保存为域名。因此它应该将其保存为/符号之前的文本。像这样:

example.com
anotherexample.com
sample.com

有没有人知道任何简单的方法,所以我仍然可以并行运行它?

1 个答案:

答案 0 :(得分:0)

您可以先转换list.txt中的地址,并明确指定wget的输出文件,例如:

parallel -a list.txt --jobs 100 'g=$(echo {1} | tr "/" "_");wget -P /home/files -O $g {1}'

此处,{1}代表parallel从输入列表中提取的参数,所有/只是替换为_。要仅保留第一个/之前的字符,可以执行

parallel -a list.txt --jobs 100 'g=$(echo {1} | sed "s#/.*##");wget -P /home/files -O $g {1}'