shell脚本-仅当文件名在我的列表中时才使用wget下载文件

shell脚本-仅当文件名在我的列表中时才使用wget下载文件,shell,download,filenames,wget,Shell,Download,Filenames,Wget,我将用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"

我将用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
使用此代码将下载所有文件。下载后,脚本将检查文件名或其中的一部分是否在列表中。否则,脚本将删除该文件。但是这需要花费大量的磁盘空间。我将只下载一个文件,如果文件名包含一个列表项


也许有人能帮你找到解决办法

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