CSVfox
Get the job done.
 Deutsch

±filter

Filtern der Datenzeileneingabe oder -ausgabe

Beschreibung

+filter Schränkt das Lesen der Datenzeilen aus der Eingabe ein, um nur mit denjenigen zu arbeiten, die der Filterbedingung entsprechen.
-filter Verhindert das Schreiben der Ausgabe von Datenzeilen, die nicht der Filterbedingung entsprechen. Es werden also nur Datenzeilen in die Ausgabe geschrieben, die der Filterbedingung entsprechen.

Filtereinschränkungen werden mit einem oder zwei Operanden und einem dazwischen liegenden Operator beschrieben.
Jeder der Operanden kann ein [Feld] oder ein {Ausdruck} sein.
Vor dem Vergleich werden jeder Ausdruck und jeder Feldwert für jede Zeile aufgelöst, siehe Ausdrücke und ihre Auflösung. Der Vergleich wird dann mit den aufgelösten Werten durchgeführt.

Zu allen Details über Bedingungen siehe auch Bedingungen für Filterung und Befehle.

Muster

±filter={Operand}Operator{Operand}

Beispiele für die Verwendung

+filter[3]
Liest diese Datenzeile nur ein, wenn die dritte Spalte nicht leer ist.
-filter[Status]!={Locked}
Gibt diese Datenzeile nur aus, wenn die Spalte "Status" nicht genau gleich "Gesperrt" ist.
-filter[Fruit]!c:{Apple/Pear}
Gibt diese Datenzeile nur aus, wenn der Text in der Spalte "Obst" weder "Apfel" noch "Birne" enthält.
-filter(NumericExpression1)ng:(NumericExpression2)
Gibt diese Datenzeile nur aus, wenn NumericExpression1 größer ist als NumericExpression2.
"NumericExpression1" und "NumericExpression2" werden vor dem Vergleich aufgelöst.

Alle Filterbedingungen

Testet auf Leerheit

-filter[Feld]
-filter[Feld]!=
string, [Feld] ist nicht leer.
-filter[Feld]!
-filter[Feld]=
string, [Feld] ist leer.
-filter([Feld])
-filter([Feld])!=0
numerisch, [Feld] ist nicht leer und nicht 0.
-filter([Feld])!
-filter([Feld])=0
numerisch, [Feld] ist leer oder gleich 0.

String-Literal-Tests (alphabetischer Vergleich)

-filter[Feld]e:{Ausdruck} [Feld] und {Ausdruck} sind gleich.
-filter[Feld]!e:[anderes Feld] {Feld] und [Anderes Feld] sind nicht gleich.
-filter[Feld]l:{Ausdruck} [Feld] ist alphabetisch kleiner als {Ausdruck}.
-filter[Feld]!l:[Anderes [Feld] ist alphabetisch nicht kleiner, d.h. größer/gleich als [Anderes Feld].
-filter[Feld]g:{Ausdruck} [Feld] ist alphabetisch größer als {Ausdruck}.
-filter[Feld]!g:[Anderes Feld] [Feld] ist alphabetisch nicht größer, d.h. kleiner/gleich als [Anderes Feld].
-filter[Feld]c:{Ausdruck} [Feld] enthält {Ausdruck}.
-filter[Feld]!c:{Ausdruck} [Feld] enthält keinen {Ausdruck}.
-filter[Feld]b:{Ausdruck} [Feld] beginnt mit {Ausdruck}.
-filter[Feld]!b:{Ausdruck} [Feld] beginnt nicht mit {Ausdruck}.
-filter[Feld]f:{Ausdruck} [Feld] endet mit {Ausdruck}.
-filter[Feld]!f:{Ausdruck} [Feld] endet nicht mit {Ausdruck}.
-filter[Feld]r:/Ausdruck/ Regex-Übereinstimmung, [Feld] entspricht {Ausdruck}.
-filter[Feld]!r:/Ausdruck/ keine Regex-Übereinstimmung, [Feld] stimmt nicht mit {Ausdruck} überein.

Numerische Tests (numerischer Vergleich)

-filter([Feld])e:(7.3)
-filter([Feld])=(7.3)
Der Wert von [Feld] ist gleich 7,3, gerundet auf max. 27 Dezimalstellen.
-filter([Feld])ne:(3)
-filter([Feld])!=(3)
Der Feldwert ist nicht gleich 3.
-filter([Feld])ne:([Anderes Feld])
-filter([Feld])!=([Anderes Feld])
Die Werte von [Feld] und [Anderes Feld] sind nicht gleich.
-filter([Feld])g:([Anderes Feld])
-filter([Feld])>([Anderes Feld])
[Feld] ist größer als [AnderesFeld].
-filter([Feld])l:([Anderes Feld])
-filter([Feld])<([Anderes Feld])
[Feld] ist kleiner als [AnderesFeld].
-filter([Feld])!g:[([AnderesFeld])
-filter([Feld])<=([Anderes Feld])
[Feld] ist nicht größer, d.h. kleiner/gleich als [AnderesFeld].
-filter([Feld])!l:([Anderes Feld])
-filter([Feld])>=([AnderesFeld])
[Feld] ist nicht kleiner, d.h. größer/gleich als [AnderesFeld].
-filter([Feld])gl:([Feld1])/([Feld2])
-filter([Feld])<>([Feld1])/([Feld2])
[Feld] ist größer als [Feld1] und kleiner als [Feld2].
-filter([Feld])gel:([Feld1])/([Feld2])
-filter([Feld])<=>([Feld1])/([Feld2])
[Feld] ist gleich oder größer als [Feld1] und gleich oder kleiner als [Feld2].
-filter([Feld])lg([Feld1])/([Feld2])
-filter([Feld])><([Feld1])/([Feld2])
[Feld] ist entweder kleiner als [Feld1], oder größer als [Feld2].
-filter([Feld])leg([Feld1])/([Feld2])
-filter([Feld])>=<([Feld1])/([Feld2])
[Feld] ist entweder gleich oder kleiner als [Feld1], oder gleich oder größer als [Feld2].
Diese Filter funktionieren, wenn [Feld] und [anderes Feld] die standardmäßige lokale numerische Formatierung aufweisen.
Wenn ein numerisches [Feld] in einem anderen Format vorliegt, muss ein zusätzlicher Hinweis zur Leseformatierung ([Feld]) verwendet werden.
Verwenden Sie z.B. "([Feld],)", wenn [Feld] ein Dezimalkomma hat, während der lokale Standard für das Dezimaltrennzeichen ein Punkt ist. Siehe auch Numerische Felder lesen und formatieren.

Bei Strings wird mit dem Modifikator "i" die Groß- und Kleinschreibung nicht beachtet

Dieser Modifikator kann an den Filterbefehl als /i-Modus angehängt werden.

-filter[Feld]={Ausdruck} [Feld] und {Ausdruck} sind gleich.
-filter/i[Feld]={Ausdruck} [Feld] und {Ausdruck} sind gleich, Vergleich ohne Beachtung der Groß-/Kleinschreibung.
-filter[Feld]!=[anderes Feld] [Feld] und [Anderes Feld] sind nicht gleich.
-filter/i[Feld]!=[Anderes Feld] [Feld] und [Anderes Feld] sind nicht gleich, Vergleich unterscheidet nicht zwischen Groß- und Kleinschreibung.

Wenn das Trennzeichen den Ausdruck stört, können Sie das Trennzeichen ändern.

-filter/#[Feld]r:#Ausdruck# Regex-Übereinstimmung, [Feld] entspricht {Ausdruck} (mit #-Trennzeichen).
-filter/#[Feld]!r:#Ausdruck# keine Regex-Übereinstimmung, [Feld] stimmt nicht mit {Ausdruck} überein (mit #-Trennzeichen).

Wenn Sie mehrere rechte Operanden mit einem Trennzeichen verketten, können auf der rechten Seite mehrere Auswahlmöglichkeiten angegeben werden

-filter[Feld]=abc [Feld] wird mit "abc" verglichen.
-filter[Feld]=abc/abd/xyz [Feld] wird mit "abc", "abd", und "xyz" verglichen.
-filter/#[Feld]e:abc#abd#xyz [Feld] wird mit "abc", "abd" und "xyz" verglichen, wobei ein "#" als Trennzeichen verwendet wird.
-filter/:[Feld]e:abc:abd:xyz [Feld] wird mit "abc", "abd" und "xyz" verglichen, wobei ein ":" als Trennzeichen verwendet wird.
-filter/#[Feld]e:{Ausdruck}#[abd]#[XYZ] [Feld] wird mit {ausdruck} und mit den Feldern [abd] und [XYZ] verglichen, wobei ein "#"-Trennzeichen verwendet wird.
-filter/i#[Feld]e:{Ausdruck}#[abd]#[XYZ] [Feld] wird mit {Ausdruck} verglichen, und mit den Feldern [abd] und [XYZ];
Der Vergleich unterscheidet nicht zwischen Groß- und Kleinschreibung und verwendet ein "#"-Trennzeichen.

Mehrere positive Auswahlen werden ODER-verknüpft, mehrere negative Auswahlen werden UND-verknüpft:

-filter[Feld]e:abc/def/ghi [Feld] enthält "abc" oder "def" oder "ghi".
-filter[Feld]!c:abc/def/ghi [Feld] enthält nicht "abc" und auch nicht "def" und auch nicht "ghi".
(d.h. weder "abc" noch "def" noch "ghi").

Filter können kombiniert werden, d.h. es kann mehr als ein Filter für die Ausgabe (oder Eingabe) verwendet werden. In diesem Fall müssen alle Filter übereinstimmen, um die Eingabe bzw. Ausgabe der Datenzeile zu ermöglichen.
Under construction, coming soon