CSVfox
Gets the job done.
 Deutsch

Schnellstart – der einfache Weg

Dieses Programm wird wie ein regulärer Befehl auf der Windows-Befehlszeile (PowerShell, Befehl, Batch-Datei) verwendet. Es liest CSV -Tabellen, ändert sie auf verschiedene Weise entsprechend den Befehlszeilenparametern, führt sie zusammen oder filtert sie vor der Ausgabe.

Kurz gesagt, müssen Sie Folgendes wissen, um zu beginnen:
  • Alle Befehle beginnen mit einem Pluszeichen (+), einem Minuszeichen (-) oder einem Prozentzeichen (%).
  • Bei allen Befehlen steht das "+"-Präfix (Plus) für das Lesen oder Verarbeiten der Eingabetabelle und das "-"-Präfix (Minus) für das Ändern der Ausgabetabelle. Das "%"-Präfix (Prozent) hat andere Zwecke.
  • Meistens enthält ein Befehl einen Spaltennamen oder eine Liste von Spaltennamen und/oder ein "=" (Gleichheitszeichen), gefolgt von einem Ausdruck oder einer Liste von Ausdrücken.
  • Außerdem bezeichnet der erste Parameter, der nicht wie ein Befehl aussieht, die Eingabedatei, während der letzte die Ausgabedatei bezeichnet. (Sie können dies überschreiben, indem Sie die Eingabe- und Ausgabedatei explizit über "+in= filepath" und/oder "-out= filepath" deklarieren.)
  • Auf die Datenfelder von CSV kann mit ihren Spaltennamen in eckigen Klammern zugegriffen werden, wie hier: [Mein Feld], mit ihrem Index wie [3] oder im "Excel-Stil" wie [A]. Im Allgemeinen werden die Inhalte der Felder in der ersten Datenzeile als Spaltennamen interpretiert.
  • Spaltennamen können Leerzeichen enthalten. Wenn Sie über die Befehlszeile darauf zugreifen, sollten Sie sie daher in Anführungszeichen setzen, um zu verhindern, dass der Befehlszeilenparameter auseinandergerissen wird.

CSV Tabellenumwandlung auf der Befehlszeilenschnittstelle

Ändern des Tabellenformats CSV

Mit dem folgenden Befehl wird das Feldtrennzeichen CSV von einem Komma (,) in ein Semikolon (;) geändert.

Dies ist der Rohinhalt der Tabelle CSV "people_comma.csv":

Name,Age,Eye Color,Hair color Anna,27,brown,black Harald,59,grey,blonde; now grey Peter,38,"Left: brown, right: blue",red

Jetzt geben wir diesen Befehl ein:
CSVfox people_comma.csv +d=, -d=; people_semicolon.csv

Und dies ist das Ergebnis CSV Tabelle "people_semicolon.csv":
Name;Age;Eye Color;Hair color Anna;27;brown;black Harald;59;grey;"blonde; now grey" Peter;38;Left: brown, right: blue;red

Bitte beachten Sie auch, dass gemäß dem CSV -Standard alle Felder, die das eigentliche Trennzeichen enthalten, automatisch in doppelte Anführungszeichen gesetzt werden.

Neuanordnung der CSV -Datenfelder

Auf die CSV -Datenfelder kann mit ihren Feldnamen in eckigen Klammern zugegriffen werden, wie hier: [Mein Feld] oder mit ihrem Index wie [3].

People.csv
NameAgeEye ColorHair color
Anna27brownblack
Harald59greyblonde; now grey
Peter38Left: brown, right: bluered

Durch Aufzählen der Ausgabespalten mit dem Befehl "-columns" werden die Spalten wie definiert neu angeordnet. Spalten, die in diesem Befehl nicht benannt werden, werden bei der Ausgabe ausgelassen.

Die Neuanordnung erfolgt also wie folgt:
CSVfox People.csv -columns=[Name],["Eye Color"],[Age] People_rearr.csv

Dies ist die resultierende CSV -Tabelle:

People_rearr.csv
NameEye ColorAge
Annabrown27
Haraldgrey59
PeterLeft: brown, right: blue38

Neuberechnung eines CSV -Datenfeldes

Dies ist die Tabelle "Artikel.csv", eine Sammlung von Kleidungsstücken, die zum Verkauf stehen.

Articles.csv
ArtNoArticle NamePriceSize
348593485Long Sleeve Business Shirt65.00XX
585048534Trousers70.00XL
459845414Business Jacket85.00XL
524525257Fine Leather Shoes235.00EU46

Der Laden wird nun alle Preise um 20 Prozent erhöhen.
Die neuen Preise sollen mit zwei Dezimalstellen eingefügt werden:
csvfox Articles.csv +set[Price]={([Price]+20%).2} NewPrices.csv

NewPrices.csv
ArtNoArticle NamePriceSize
348593485Long Sleeve Business Shirt78.00XXL
585048534Trousers84.00XL
459845414Business Jacket102.00XL
524525257Fine Leather Shoes282.00EU46

Verwendung einer "Job"-Datei


(fehlendes Beispiel)

Dies funktioniert zeilenweise. Zunächst wird die Kopfzeile gelesen (falls vorhanden) und alle Feldnamen werden erkannt.
Danach werden die Tabellenzeilen nacheinander gelesen und jede Zeile wird Befehl für Befehl verarbeitet.

Auf die Felder kann mit ihren Feldnamen in eckigen Klammern wie folgt zugegriffen werden: [My Field] oder mit ihrem Index wie [i]. Sie können geändert, eingefügt oder gelöscht, umbenannt, neu angeordnet oder neu berechnet werden.

Zusätzliche Felder aus anderen Tabellen können zusammengeführt werden, und die gesamte Tabelle kann in neu angeordnete abgeleitete Zeilen aufgeteilt (neu formatiert) werden.

Schließlich wird die Tabelle unter einem neuen Namen gespeichert.

CSVfox ist auch für die Automatisierung geeignet, z. B. für die Verwendung in Batch-Dateien oder PowerShell-Skripten, sodass sie planmäßig von einem Betriebssystem wie Cron oder Task Scheduler ausgeführt werden kann.
Komplexere Befehle oder Konfigurationen können als "Job"-Datei kombiniert werden, um sie in verschiedenen Situationen anzuwenden und wiederzuverwenden.

Weitere Beispiele

csvfox infile.csv +e=utf-8 +d=";" -e=Windows-1252 -d=pipe outfile.csv
Dieser Befehl ändert das Format der Datei CSV.
Er liest infile.csv und geht dabei von einer UTF-8-Kodierung und einem Semikolon als Trennzeichen aus. Anschließend schreibt er die Daten in outfile.csv, wobei er die Trennzeichen in "|" und die Kodierung in ANSI (Windows) ändert.
Siehe auch ±encoding und ±delimiter.
csvfox prices.csv +e=windows-1252 -set[Price]="{([Price]+20%),2}" -e=utf-8 newprices.csv
Hiermit wird ein numerisches Feld neu berechnet.
Es liest die Windows-formatierte CSV -Datei "prices.csv", erhöht die vorhandene CSV -Spalte Price um 20 Prozent und formatiert das Ergebnis mit Dezimalkomma und zwei Dezimalstellen. Anschließend werden alle Daten unter Verwendung von UTF-8 in "newprices.csv" geschrieben.
Siehe auch Rechnen mit numerischen CSV Feldern.
csvfox newprices.csv -add["Special Offer Text"]="Just for you: [Price]!" specialoffers.csv
Dieser Befehl hängt eine neue Spalte an und füllt sie mit Text.
Er hängt die neue Spalte Special Offer Text an die Tabelle CSV an und fügt dort Text ein, der den Inhalt von Price enthält.
Siehe auch Ausdrücke und ihre Auflösung.
csvfox cities.csv %merge[Name]=[Location]@attractions.csv cityattractions.csv
Dieses Beispiel kombiniert zwei Dateien.
Es reichert die Daten in "cities.csv" mit allen Feldern der in "attractions.csv" aufgeführten Attraktionen an, wobei die Spalte Locations in "attractions.csv" mit dem Feld Name in "cities.csv" übereinstimmt. Die resultierenden Daten werden in "cityattractions.csv" geschrieben.
Siehe auch %merge.
Under construction, coming soon