Ich werde viele Dateien von einem Server mit wget herunterladen. Aber die Dateien sollten nur gespeichert werden, wenn der Dateiname in einer bestimmten Liste ist. Andernfalls sollte wget aufhören, diese Datei zu bekommen und die nächste zu starten.Shell-Skript - Dateien mit wget nur herunterladen, wenn der Dateiname in meiner Liste ist
Ich habe versucht, die folgenden:
#!/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
Mit diesem Code werden alle Dateien heruntergeladen werden. Nach dem Download überprüft das Skript, ob der Dateiname oder ein Teil davon in der Liste enthalten ist. Andernfalls löscht das Skript die Datei. Aber das kostet viel Speicherplatz. Ich werde nur eine Datei herunterladen, wenn der Dateiname einen enthält, wenn die Liste Elemente enthält.
Vielleicht kann jemand helfen, eine Lösung zu finden.