CSVfox
Gets the job done.
 Deutsch

%job, %j

Verwendung einer Job-Datei mit CSVfox -Befehlen

Beschreibung

Ein %job Befehl bezeichnet eine Datei, die wiederum einige CSVfox -Befehlszeilenparameter enthält.

Eine job -Datei ist eine reine Textdatei. Jede Zeile enthält genau einen CSVfox -Befehl. Die Befehle werden also Zeile für Zeile aus der job -Datei gelesen.
Sie werden der Reihe nach verarbeitet, als wären sie in der Befehlszeile an der Position platziert, an der der %job Befehl aufgerufen wurde.

Einrückungen, Leerzeilen und Kommentare

Ein oder mehrere führende Leerzeichen werden aus jeder Zeile der job -Datei entfernt.
Achtung: Nachgestellte Leerzeichen in einer Zeile sind Teil des Befehls!

Leere Zeilen werden ignoriert und übersprungen.
Kommentarzeilen beginnen mit einem Rautenzeichen, wie "#". Sie werden ebenfalls ignoriert und übersprungen.

Vorteile gegenüber der direkten Verwendung in der Befehlszeile

Das Verschieben von Befehlen in eine Datei ermöglicht eine bessere Übersichtlichkeit, die Wiederverwendung in verschiedenen Konstellationen und erspart das Anführen von Leerzeichen, die in den Parameter eingebettet sind.
Insbesondere bei einer sehr langen Abfolge von Befehlszeilenparametern oder einer komplexen ±regex oder ±if Befehl, der viele Klammern und Sonderzeichen enthalten kann, die auch vom Stapelverarbeitungsprozessor interpretiert und verschleiert werden können, kann es hilfreich sein, die Befehle ordentlich in einer Parameterdatei zu speichern.
In jeder Shell gibt es auch verschiedene Steuerzeichen und Platzhaltermechanismen sowie Weiterleitungs- und Umleitungszeichen, die CSVfox -Befehle beeinträchtigen können. Diese Effekte können auch vollständig vermieden werden, indem eine job -Datei verwendet wird.

Muster

%j=filename %job=filename %job/encoding=filename
Der %job Befehl kann allein oder zwischen anderen csvfox-Befehlen angegeben werden.
Mehrere %job Befehle sind in derselben Befehlszeile möglich. %job -Dateien können sogar verschachtelt werden.
Der in der Parameterdatei verwendete Zeichensatz kann optional mit der Option "/" angegeben werden.

In der %job -Datei enthält jede Zeile ein Argument, das andernfalls ein Programmparameter wäre. Jedes Leerzeichen ist Teil des Ausdrucks, sodass eingeschlossene und nachstehende Leerzeichen sorgfältig vermieden werden müssen, wenn sie nicht als Teil des Befehlsausdrucks vorgesehen sind.
Leerzeichen am Anfang werden ignoriert und können zur besseren visuellen Strukturierung der Datei verwendet werden.

Andererseits ist es nicht notwendig, Befehle, Ausdrücke und Feldnamen, die Leerzeichen enthalten, in Anführungszeichen zu setzen, da sie nicht automatisch an Leerzeichen getrennt werden.

Eine %job -Datei kann jede unterstützte Kodierung haben, sodass sie alle einschränkenden oder Befehlszeilen-Zeichensätze überwindet. Dies ist besonders wichtig für Windows, da in Linux oder MacOS eine UTF-8-Shell Standard ist, was nur wenige Zeicheneinschränkungen bedeutet.

Stellen Sie sich die Befehlszeilenfolge vor:
csvfox infile.csv +delim=, -delim=; -set[a]=([*]+20%) "my output file.csv"
Sie können alle Befehlszeilenparameter in eine Datei "changedelimiters.txt" eingeben:
changedelimiters.txt
# the input csv file infile.csv # change csv delimiters from comma to semicolon +delim=, -delim=; # increase field [a] by 20 percent -set[a]=([*]+20%) # the output csv file my output file.csv

Und von nun an können Sie einfach Folgendes aufrufen:
csvfox %job=changedelimiters.txt
Wie Sie sehen, ist es nicht mehr notwendig, Leerzeichen in Anführungszeichen zu setzen, wie es früher in der Befehlszeile der Fall war.

Sie können alle oder nur einige der erforderlichen Parameter in eine %job -Datei einfügen. Auf diese Weise können Sie einige Bausteine vorbereiten, die häufig verwendet werden können.


Anwendungsbeispiele

csvfox infile.csv %job=us_to_german.txt outfile.csv
us_to_german.txt
# reformat from ASCII to windows+delim =,+encoding =ASCII-delim =;-encoding =Windows-1252-regex [Price]=\d\.\d/\1,\2
Die Datei %job  file us_to_german.txt enthält eine Reihe von Umwandlungen, die vorgenommen werden können, um eine CSV -Datei, die den US-amerikanischen Gepflogenheiten entspricht, besser an das deutsche Gebietsschema anzupassen (auf einem älteren Windows-PC). Sie ändert das Trennzeichen CSV von Komma zu Semikolon, die Kodierung von ASCII zu Windows-1252 und ersetzt den Dezimalpunkt im Feld "Preis" durch ein Dezimalkomma.
Die Datei wird hier verwendet, um infile.csv in outfile.csv zu ändern.
csvfox infile.csv %job/UTF-8=us_to_german.txt outfile.csv
Liest die Befehle von us_to_german.txt explizit im UTF-8-Format statt im plattformspezifischen Standardformat und verwendet sie zur Änderung von infile.csv in outfile.csv.
csvfox infile.csv %job=us_to_german.txt -rename[Price]=[Amount] -columns=[3]-[6] outfile.csv
Liest die Befehle erneut von us_to_german.txt und verwendet sie für die Änderung von infile.csv in outfile.csv.
Und es gibt weitere Befehle auszuführen, da das Feld "Preis" in outfile.csv in "Betrag" umbenannt werden muss und die Ausgabedatei nur die Felder mit den Nummern 3 bis 6 enthalten soll.
Under construction, coming soon