CSVfox
Get the job done.
 Deutsch

%merge

Fügt alle Felder aus einer zusätzlichen CSV Datei in die aktuelle Zeile ein.

Beschreibung

Dieser Befehl fügt zusätzliche Spalten aus einer anderen CSV Datei in die aktuelle Zeile der Eingabedatei ein.

Für jede Zeile der Eingabedatei verwendet er ein lokales und ein entferntes Schlüsselfeld und vergleicht beide Felder, um die richtigen Daten (CSV Zeile) in der zusätzlichen Datei zu finden. Dann fügt es die Felder dieser Zeile an die lokalen Datenfelder an.

Alle "+"-Befehle vor dem %merge Befehl beziehen sich auf die Eingabedatei, während sich alle "+"-Befehle danach auf die zusätzlich zusammengeführte Datei beziehen.
Alle "-" Spalten- oder Feldbefehle beziehen sich dann auf die kombinierten Eingabe- und zusammengeführten Felder in der Ausgabedatei. Schließlich werden dann alle Felder zusammen in die Ausgabedatei geschrieben (sofern sie nicht nachträglich entfernt wurden, siehe auch ±delete und ±columns).

Muster

%merge=Dateiname %merge[localfield]=Dateiname %merge[localfield]=[remotefield]@filename

Wenn alle Feldnamen weggelassen werden, verwendet der Befehl die erste Spalte der Eingabedatei als lokalen Schlüssel und, falls vorhanden, eine Spalte mit demselben Namen in der zusätzlichen Datei als entfernten Schlüssel.
Wenn es keine Spalte mit einem identischen Spaltennamen gibt, wird die erste Spalte in der zusätzlichen Datei mit der ersten Spalte der Eingabedatei verglichen.

Wenn nur das lokale Schlüsselfeld oder der Ausdruck definiert ist, verwendet der Befehl das gleichnamige Feld oder den gleichen Ausdruck für die zusätzliche Datei. Wenn eine solche Spalte nicht existiert, wird die erste Spalte der zusätzlichen Datei als entfernter Schlüssel verwendet.

Wenn nur der entfernte Schlüssel angegeben ist, wird er mit der ersten Spalte der Eingabedatei verglichen.

Wenn weder der lokale noch der entfernte Schlüssel definiert sind, werden die ersten Spalten jeder Tabelle als Schlüssel für den Abgleich verwendet.

Beispiele für die Verwendung

Angenommen, wir haben eine Tabelle mit Artikeln:
articles.csv
IDDescriptionPriceVATfoo
12Bread0.751bla
15Milk1.501blub
18Trousers49.992bar
23Golden Watch2000.003what
55Pair of Shoes99.902brand

Und es gibt eine weitere Tabelle über die Mehrwertsteuersätze:
vat-rates.csv
IDNameRate
0VAT free0
1Reduced VAT7
2Normal VAT19
3Luxus VAT25

Wie wir sehen können, ist die Spalte VAT in der Tabelle articles.csv mit der Spalte ID in der Tabelle vat-rates.csv .

Auf diese Weise können wir die jeweiligen Mehrwertsteuersätze in die Artikeltabelle einfügen:
articles.csv %merge[VAT]=[ID]@vat-rates.csv articles-with-vat.csv
Dies wird die resultierende Tabelle sein:
articles-with-vat.csv
IDDescriptionPriceVATfooIDNameRate
12Bread0.751bla1Reduced VAT7
15Milk1.501blub1Reduced VAT7
18Trousers49.992bar2Normal VAT19
23Golden Watch2000.003what3Luxus VAT25
55Pair of Shoes99.902brand2Normal VAT19

Wahlweise:
Wenn Sie dies getan haben, können Sie auch den Bruttopreis in einer zusätzlichen Spalte berechnen.
Schließlich können Sie die Spalten neu anordnen, um eine übersichtlichere Artikeldatei zu erhalten, wenn Sie dies wünschen.
articles.csv %merge[VAT]=[ID]@vat-rates.csv -add[GrossPrice]="{([Price]+[VAT]%).2}" -columns=ID,Description,Price,Rate,GrossPrice articles-with-vat.csv
Dies wird die resultierende Tabelle sein:
articles-with-vat.csv
IDDescriptionPriceRateGrossPrice
12Bread0.7570.80
15Milk1.5071.60
18Trousers49.991959,49
23Golden Watch2000.00252500.00
55Pair of Shoes99.9019118,88
Under construction, coming soon