2016-07-25 2 views
2

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" "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 

:

나는 다음 시도했다. 다운로드 후에 스크립트는 파일 이름 또는이 파일의 일부가 목록에 있는지 검사합니다. 그렇지 않으면 스크립트가 파일을 삭제합니다. 그러나 이것은 많은 디스크 공간을 필요로합니다. 파일 이름에 목록 항목이 포함되어있는 경우에만 파일을 다운로드합니다.

아마도 누군가가 해결책을 찾을 수 있습니다.

답변

0

해결책을 찾았습니다. wget에 --no-parent 태그를 잊어 버렸습니다.

관련 문제