slice
Mittels des slice-Kommandos kann ein zusammenhängender Teilbereich aus der Eingabe ausgeschnitten werden. Dabei wird der Teilbereich als halb-offenes Intervall angegeben, wobei die Positionen von 0 an gezählt werden. Beim Auftreten eines ungültigen Datensatzes wird die Position weitergezählt. Enthält bspw. die Eingabe 1.000 Zeilen, mit 990 Datensätzen und 10 ungültigen Zeilen, dann sind die Positionen von 0 bis 999 durchnummeriert.
Das folgende Beispiel extrahiert alle (gültigen) Datensätze aus den Positionen 2 bis 4:
$ pica slice -s --start 2 --end 5 DUMP.dat.gz -o slice.dat
$ pica count --records slice.dat
3Optionen
--start <number>-
Startposition des Teilbereichs (Voreinstellung:
0). --end <number>-
Endposition des Teilbereichs; diese Position ist nicht mehr Teil der Ausgabe. Ist keine Endposition angegeben, wird der Teilbereich bis zum Ende der Eingabe fortgeführt. Diese Option ist nicht kombinierbar mit
--length. --length <number>-
Festlegen der maximalen Anzahl an Datensätzen, die in der Ausgabe enthalten sind. Diese Option kann nicht mit
--endkombiniert werden. -g,--gzip- Komprimieren der Ausgabe im Gzip-Format.
--append- Wenn die Ausgabedatei bereits existiert, wird die Ausgabe an die Datei angehangen. Ist das Flag nicht gesetzt, wird eine bestehende Datei standardmäßig überschrieben.
-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
-obzw.--output. -o,--output-
Angabe, in welche Datei die Ausgabe geschrieben werden soll. Standardmäßig wird die Ausgabe in die Standardausgabe
stdoutgeschrieben.
Filter-Optionen
-s,--skip-invalid- Überspringt jene Zeilen aus der Eingabe, die nicht dekodiert werden konnten.
-l <number>,--limit <number>- Eingrenzung der Ausgabe auf die ersten n Datensätze.
-i,--ignore-case- Groß- und Kleinschreibung wird bei Vergleichen ignoriert.
--strsim-threshold <value>-
Festlegen des Schwellenwerts beim Ähnlichkeitsvergleich von Zeichenketten mittels
=*. -A <file>,--allow-list<file>- Es werden alle Datensätze ignoriert, die nicht explizit in der Positivliste auftauchen. Werden mehrere Positivlisten angegeben, wird die Mengenvereinigung aus allen Listen gebildet.
-D <file>,--deny-list<file>- Es werden alle Datensätze ignoriert, die in der Negativliste auftauchen. Werden mehrere Negativlisten angegeben, wird die Mengenvereinigung aus allen Listen gebildet.
--filter-set-column <column>-
Legt den Spaltennamen fest, der die Referenzwerte einer Allow- bzw. Deny-Liste enthält. Wird die Option nicht angegeben, werden die Werte aus der Spalte
ppnbzw.idnausgelesen. Dieidn-Spalte wird nur versucht zu lesen, wenn keineppn-Spalte vorhanden ist. --filter-set-path <path>-
Ein Pfadausdruck, der zur Ermittlung der Vergleichswerte genutzt wird. Ist die Option nicht angegeben, wird von einem Vergleich mit der PPN im Feld
003@.0eines Datensatzes ausgegen. --where <expr>- Angabe eines Filters, um Datensätze aus der Eingabe auszuwählen.
--and <expr>-
Hinzufügen eines zusätzlichen Filters mittels der booleschen
&&-Verknüpfung. Der ursprüngliche Filterausdruck<filter>wird zum Ausdruck<filter> && <expr>. --or <expr>-
Hinzufügen eines zusätzlichen Filters mittels der booleschen
||-Verknüpfung. Der ursprüngliche Filterausdruck<filter>wird zum Ausdruck<filter> || <expr>. --not <expr>-
Hinzufügen eines zusätzlichen Filters. Der ursprüngliche Filterausdruck
<filter>wird zum Ausdruck<filter> && !(<expr>).
Beispiele
Ausschneiden eines Teilbereichs fester Größe
Wenn die Eingabe ausreichend Datensätze enthält, kann beginnend bei einer festen Position (--start) ein Teilbereich mit einer festen Länge (--length) ausgeschnitten werden.
Im folgenden Beispiel wird beginnend beim dritten Datensatz (Position 2) ein Teilbereich mit einer Länge von zwei ausgeschnitten:
$ pica slice -s --start 2 --length 2 DUMP.dat.gz -o slice.dat
$ pica count --records slice.dat
2