hash

Mithilfe des Kommandos hash lässt sich eine Tabelle erzeugen, die in der ersten Spalte die PPN (Feld 003@.0) und in der zweiten Spalte den SHA-256-Hashwert des Datensatzes enthält.

Mitunter kommt es vor, dass eine regelmäßige und aufwändige Berechnung für Datensätze ausgeführt werden muss und es nicht praktikabel ist, die Berechnung über alle Datensätze durchzuführen. Mittels des hash-Kommandos können auf unterschiedlichen Abzügen die Hashwerte der Datensätze bestimmt werden. Durch Vergleich dieser Tabelle ist es möglich, die Datensätze zu identifizieren, die sich geändert haben, gelöscht oder neu hinzugefügt wurden. Das folgende Beispiel demonstriert die Erzeugung dieser Hash-Tabellen:

$ pica hash -s DUMP.dat.gz
ppn,hash
118540238,762cf3a1b18a0cad2d0401cd2b573a89ff9c81b43c4ddab76e136d7a10a851f3
118607626,8d75e2cdfec20aa025d36018a40b150363d79571788cd92e7ff568595ba4f9ee
040993396,0361c33e1f7a80e21eecde747b2721b7884e003ac4deb8c271684ec0dc4d059a
...

Optionen

-s, --skip-invalid
Überspringt jene Zeilen aus der Eingabe, die nicht dekodiert werden konnten.
-H <header>, --header <header>
Kopfzeile, die den Ergebnissen vorangestellt wird.
-t, --tsv
Ausgabe erfolgt im TSV-Format.
-p, --progress
Anzeige des Fortschritts, der die Anzahl der eingelesenen gültigen sowie invaliden Datensätze anzeigt. Das Aktivieren der Option erfordert das Schreiben der Datensätze in eine Datei mittels -o bzw. --output.
-o <filename>, --output <filename>
Angabe, in welche Datei die Ausgabe geschrieben werden soll.

Beispiele

Ausgabe im TSV-Format

Die Ausgabe lässt sich mittels der Option --tsv (bzw. -t) in das TSV-Format ändern.

$ pica hash -s --tsv DUMP.dat.gz
ppn hash
118540238   762cf3a1b18a0cad2d0401cd2b573a89ff9c81b43c4ddab76e136d7a10a851f3
118607626   8d75e2cdfec20aa025d36018a40b150363d79571788cd92e7ff568595ba4f9ee
040993396   0361c33e1f7a80e21eecde747b2721b7884e003ac4deb8c271684ec0dc4d059a
...

Hinzufügen einer Kopfzeile

Eine individuelle Kopfzeile lässt sich mit der Option --header (bzw. -H) ausgeben:

$ pica hash -s --header 'idn,sha256' DUMP.dat.gz
idn,sha256
118540238,762cf3a1b18a0cad2d0401cd2b573a89ff9c81b43c4ddab76e136d7a10a851f3
118607626,8d75e2cdfec20aa025d36018a40b150363d79571788cd92e7ff568595ba4f9ee
040993396,0361c33e1f7a80e21eecde747b2721b7884e003ac4deb8c271684ec0dc4d059a
...

Anmerkung

Zur Berechnung des SHA-256-Hashwerts wird der abschließende Zeilenumbruch mit einbezogen, um einen gleichen Hashwert zu erzeugen, der entsteht, wenn der Hashwert über die gesamte Zeile aus der Eingabe ermittelt wird. Im folgenden Beispiel wird zuerst der erste gültige Datensatz in die Datei 1.dat geschrieben. Anschließend wird der Hashwert einmal mit dem hash-Kommando und einmal mit dem Unix-Programm sha256sum gebildet. Beide Ergebnisse sind gleich.

$ pica filter -s -l1 "003@?" DUMP.dat.gz -o 1.dat
$ pica hash 1.dat
ppn,hash
118540238,762cf3a1b18a0cad2d0401cd2b573a89ff9c81b43c4ddab76e136d7a10a851f3

$ sha256sum 1.dat
762cf3a1b18a0cad2d0401cd2b573a89ff9c81b43c4ddab76e136d7a10a851f3