wget命令使用url输入文件保存用户指定名称的输出

时间:2018-07-10 18:13:49

标签: bash wget

我正在尝试:
1. wget -i url.txt

2. wget -O output.ext

我如何同时加入?下载url.txt中列出的网址,并使用我指定的名称保存为单独的文件。

2 个答案:

答案 0 :(得分:1)

在url.txt中定义所有URL,然后尝试一下是否满足您的要求:

for url in $(cat url.txt); do wget $url -O $url.out ; done

如果您的URL由一个或多个URI组成,这将用下划线替换斜杠:

for url in $(cat url.txt); do wget $url -O $(echo $url | sed "s/\//_/g").out ; done

答案 1 :(得分:1)

在这种情况下,我认为您需要两个具有相同行数的文件,以将每个url映射为一个对应的名称:

url.txt(包含您的url的源文件,此处提供示例内容):

https://svn.apache.org/repos/asf/click/trunk/examples/click-spring-cayenne/README.txt
https://svn.apache.org/repos/asf/click/trunk/examples/click-spring-cayenne/README.txt

output_names.txt(要分配的文件名):

readme1.txt
readme2.txt

然后遍历两个文件,然后将内容传递到wget,例如使用以下script

#!/bin/bash
IFS=$'\n' read -d '' -r -a url < "$1"
IFS=$'\n' read -d '' -r -a output < "$2"
len=${#url[@]}
for ((i=0;i<$len;i++))
do
  wget "${url[$i]}" -O "${output[$i]}"
done

致电:

./script url.txt output_names.txt