seminar-wir-bauen-uns-einen.../scripte/download.sh

57 lines
1.8 KiB
Bash

#!/bin/bash
# Script zum Download von Metadaten über Z39.50-Schnittstellen mit curl
# Programmvariablen
name=haw
date=$(date +%F)
dir=download
url=http://sru.gbv.de/opac-de-18-302?operation=searchRetrieve
query="pica.ppn=.*"
recordSchema=marcxml
startRecord=1
maximumRecords=100
endRecord=450200
let counter=startRecord+maximumRecords-1
# Variablen ausgeben
echo "Dateinamen: " ${name}_${date}_$(printf "%.6i\n" ${startRecord})-$(printf "%.6i\n" ${counter}).marcxml
echo "Verzeichnis " ${dir}
echo "Schnittstelle: " ${url}
echo "Suchabfrage: " ${query}
echo "Records: " "von "${startRecord}" bis "${endRecord}
echo "pro Datei: " ${maximumRecords}
echo ""
# Startzeitpunkt ausgeben
echo "Startzeitpunkt: $(date)"
echo ""
# Verzeichnis erstellen (falls nicht vorhanden)
mkdir download > /dev/null 2>&1
# Schleife mit Aufruf von curl
while [ "$counter" -le "$endRecord" ] ; do
echo "Download Records "${startRecord}" bis "${counter}"..."
curl "${url}&query=${query}&maximumRecords=${maximumRecords}&recordSchema=${recordSchema}&startRecord=${startRecord}" > $dir/${name}_${date}_$(printf "%.6i\n" ${startRecord})-$(printf "%.6i\n" ${counter}).marcxml
echo "Ergebnis: "$(grep -c -H "<controlfield tag=\"001\">" $dir/${name}_${date}_$(printf "%.6i\n" ${startRecord})-$(printf "%.6i\n" ${counter}).marcxml)" Records"
echo ""
let counter=counter+maximumRecords
let startRecord=startRecord+maximumRecords
done
# Endzeitpunkt ausgeben
echo "Endzeitpunkt: $(date)"
echo ""
# Liste der erstellten Dateien
echo "Folgende Dateien liegen jetzt vor:"
echo "(Dateinamen und Anzahl der enthaltenen Records)"
grep -c "<controlfield tag=\"001\">" $dir/*.marcxml
echo ""
# Gesamtzahl der heruntergeladenen Records
echo "Gesamtanzahl der Records im Ordner download:"
grep "<controlfield tag=\"001\">" $dir/*.marcxml | wc -l
exit