【问题标题】:shell script - Download files with wget only when file name is in my listshell 脚本 - 仅当文件名在我的列表中时才使用 wget 下载文件
【发布时间】:2016-11-28 18:48:48
【问题描述】:

我将使用 wget 从服务器下载大量文件。但仅当文件名在给定列表中时才应存储文件。否则 wget 应该停止获取这些文件并开始下一个。

我尝试了以下方法:

#!/bin/bash

etsienURL="http://www.etsi.org/deliver/etsi_en"
etsitsURL="http://www.etsi.org/deliver/etsi_ts"

listOfStandards=("en_302571" "en_3023630401" "en_3023630501" "en_3023630601" "en_30263702" "en_30263703" "en_302663" "en_302931" "ts_10153901" "ts_10153903" "ts_1026360501" "ts_1027331" "ts_10286801" "ts_10287103" "ts_10289401" "ts_10289402" "ts_102940" "ts_102941" "ts_102942" "ts_102943" "ts_103097" "ts_10324601" "ts_10324603")

wget -r -nd -nc -e robots=off -A.pdf $etsienURL
wget -r -nd -nc -e robots=off -A.pdf $etsitsURL
for file in *.pdf
    do
        relevant=false
        for t in "${listOfStandards[@]}"
            do
                if [[ $(basename "$file" .pdf) == *"$t"* ]]
                then
                    relevant=true
                    break
                fi
            done
        if [ $relevant == false ]
        then
            rm "$file"
        fi
    done

使用此代码将下载所有文件。下载后,脚本会检查文件名或其中的一部分是否在列表中。否则脚本将删除该文件。但这会占用大量磁盘空间。我只会下载一个文件,如果文件名包含一个列表项。

也许有人可以帮助找到解决方案。

【问题讨论】:

    标签: shell download filenames wget


    【解决方案1】:

    找到了解决办法。我忘记了 wget 的 --no-parent 标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-29
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多